Kiểm tra chuỗi trống hoặc chuỗi trống trong Java

1. Giới thiệu

Trong hướng dẫn này, chúng ta sẽ xem xét một số cách kiểm tra chuỗi trống hoặc chuỗi trống trong Java. Chúng tôi có một số phương pháp tiếp cận ngôn ngữ mẹ đẻ cũng như một vài thư viện.

2. Trống so với Trống

Tất nhiên, khá phổ biến để biết khi nào một chuỗi trống hoặc trống, nhưng hãy đảm bảo rằng chúng ta đang ở cùng một trang với các định nghĩa của mình.

Chúng tôi coi một chuỗi là trống nếu nó là null hoặc một chuỗi không có bất kỳ độ dài nào . Nếu một chuỗi chỉ bao gồm khoảng trắng, thì chúng ta gọi nó là chuỗi trống .

Đối với Java, khoảng trắng là các ký tự như dấu cách, tab, v.v. Hãy xem Character.isWhitespace để biết các ví dụ.

3. Chuỗi trống

3.1. Với Java 6 trở lên

Nếu chúng ta ít nhất đang sử dụng Java 6, thì cách đơn giản nhất để kiểm tra một chuỗi trốngString # isEmpty :

boolean isEmptyString(String string) { return string.isEmpty(); }

Để làm cho nó cũng không an toàn, chúng tôi cần thêm một kiểm tra bổ sung:

boolean isEmptyString(String string)  string.isEmpty(); 

3.2. Với Java 5 trở xuống

String # isEmpty đã được giới thiệu với Java 6. Đối với Java 5 trở xuống, chúng ta có thể sử dụng String # length để thay thế.

boolean isEmptyString(String string)  return string == null 

Trên thực tế, String # isEmpty chỉ là một phím tắt của String # length .

4. Chuỗi trống

Cả String # isEmptyString # length đều có thể được sử dụng để kiểm tra các chuỗi trống .

Nếu chúng ta cũng muốn phát hiện các chuỗi trống , chúng ta có thể đạt được điều này với sự trợ giúp của String # trim . Nó sẽ loại bỏ tất cả các khoảng trắng đầu và cuối trước khi thực hiện kiểm tra.

boolean isBlankString(String string)  string.trim().isEmpty(); 

Nói chính xác, Chuỗi # trim sẽ xóa tất cả các ký tự đầu và cuối có mã Unicode nhỏ hơn hoặc bằng U + 0020.

Và cũng nên nhớ rằng các chuỗi là bất biến, vì vậy việc gọi trim sẽ không thực sự thay đổi chuỗi bên dưới.

5. Xác thực Bean

Một cách khác để kiểm tra chuỗi trống là biểu thức chính quy. Điều này rất hữu ích, chẳng hạn với Java Bean Validation:

@Pattern(regexp = "\\A(?!\\s*\\Z).+") String someString;

Biểu thức chính quy đã cho đảm bảo rằng các chuỗi trống hoặc chuỗi trống sẽ không xác thực.

6. Với Apache Commons

Nếu có thể thêm phụ thuộc, chúng ta có thể sử dụng Apache Commons Lang. Điều này có một loạt các trình trợ giúp cho Java.

Nếu chúng tôi sử dụng Maven, chúng tôi cần thêm phụ thuộc commons-lang3 vào pom của chúng tôi:

 org.apache.commons commons-lang3 

Trong số những thứ khác, điều này cung cấp cho chúng ta StringUtils .

Lớp này đi kèm với các phương pháp như isEmpty , ISBLANK và vân vân:

StringUtils.isBlank(string)

Lời gọi này thực hiện tương tự như phương thức isBlankString của riêng chúng ta . Nó không an toàn và cũng kiểm tra khoảng trắng.

7. Với ổi

Một thư viện nổi tiếng khác mang lại các tiện ích liên quan đến chuỗi nhất định là Guava của Google. Bắt đầu từ phiên bản 23.1, có hai phiên bản Guava: androidjre . Phiên bản Android nhắm mục tiêu đến Android và Java 7, trong khi phiên bản JRE dành cho Java 8.

Nếu chúng tôi không nhắm mục tiêu đến Android, chúng tôi có thể thêm hương vị JRE vào pom của mình:

 com.google.guava guava 28.0-jre 

Lớp Guavas Strings đi kèm với một phương thức Strings.isNullOrEmpty :

Strings.isNullOrEmpty(string)

Nó kiểm tra xem một chuỗi đã cho là rỗng hay rỗng, nhưng nó sẽ không kiểm tra các chuỗi chỉ có khoảng trắng .

8. Kết luận

Có một số cách để kiểm tra xem một chuỗi có trống hay không. Thông thường, chúng ta cũng muốn kiểm tra xem một chuỗi có trống không, nghĩa là nó chỉ bao gồm các ký tự khoảng trắng.

Cách thuận tiện nhất là sử dụng Apache Commons Lang, cung cấp các trình trợ giúp như StringUtils.isBlank . Nếu chúng ta muốn sử dụng Java thuần túy, chúng ta có thể sử dụng kết hợp String # trim với String # isEmpty hoặc String # length . Đối với Xác thực Bean, có thể sử dụng biểu thức chính quy để thay thế.

Đảm bảo xem tất cả các mẫu này trên GitHub.