Hế lô anh em ✌️✌️✌️
Chuỗi là một khái niệm không còn xa lạ gì đối với các lập trình viên đặc biệt là đối với anh em lập trình viên Java thì đây là một kiểu dữ liệu được sử dụng rất nhiều.
Có hai khái niệm liên quan đến chuỗi là chuỗi rỗng (empty) và chuỗi trắng (blank). Trong bài viết hôm nay mình sẽ cùng anh em phân biệt hai khái niệm này cũng như tìm hiểu xem trong Java làm sao chúng ta kiểm tra được một chuỗi là rỗng hay trắng nhé!
1. Thế nào là Empty String và Blank String?
Mình nghĩ nhiều anh em đã phân được hai khái niệm này rồi! Nhưng mình cứ nhắc lại nhé 😁
+ Một chuỗi được coi là empty nếu chuỗi đó không có độ dài. Ngoài ra một chuỗi null người ta cũng có thể coi là empty.
+ Một chuỗi được coi là blank nếu chuỗi đó empty hoặc chỉ bao gồm các khoảng trắng. Trong Java khoảng trắng có thể là các ký tự được tạo ra từ các phím spaces hoặc tabs.
2. Cách kiểm tra Empty String.
2.1 - Đối với các phiên bản từ Java 6 trở về sau:
Chúng ta có thể sử dụng hàm isEmpty()
Cụ thể chúng ta có thể viết hàm kiểm tra một chuỗi có empty hay không như sau:
boolean isEmptyString(String str) {
return str.isEmpty();
}
Như mình đã đề cập bên trên, trong nhiều trường hợp chúng ta có thể coi một chuỗi null là empty. Và để kiểm tra chúng ta có thể bổ sung điều kiện như sau:
boolean isEmptyString(String str) {
return str == null || str.isEmpty();
}
Đối với các phiên bản từ Java 5 trở về trước:
Về bản chất hàm isEmpty()
cũng chỉ kiểm tra độ dài của chuỗi truyền vào. Nếu độ dài của chuỗi là 0 thì hàm sẽ trả về true
ngược lại trả về false
.
Vậy nếu các phiên bản từ Java 5 trở về trước chưa hỗ trợ hàm này thì chúng ta chỉ cần kiểm tra độ dài chuỗi là xong.
boolean isEmptyString(String str) {
return str == null || str.length() == 0;
}
3. Cách kiểm tra Blank String.
Như chúng ta đã đề cập bên trên thì để kiểm tra một chuỗi là blank thì đơn giản chúng ta chỉ cần kiểm tra hoặc chuỗi đó empty hoặc chỉ bao gồm các khoảng trắng.
Kiểm tra empty chúng ta đã có hàm isEmpty()
và để kiểm tra chuỗi chỉ bao gồm các khoảng trắng thì sao? Đơn giản thôi nếu chúng ta loại bỏ được hết khoảng trắng mà chuỗi đó trở thành empty là Ok🤙!
boolean isBlankString(String str) {
return str == null || str.trim().isEmpty();
}
Ở đây chúng ta sử dụng hàm trim()
để loại bỏ hết khoảng trắng.
Ngoài ra trong Java 11, chúng ta có một hàm đó là isBlank()
. Chúng ta có thể sử dụng hàm này để kiểm tra như sau:
boolean isBlankString(String str) {
return str == null || str.isBlank();
}
4. Sử dụng Bean Validation.
Java có rất nhiều thư viện hỗ trợ validate dữ liệu, trong trường hợp của chúng ta để kiểm tra một chuỗi empty hay blank chúng ta có thể sử dụng annotation @Pattern()
như sau:
@Pattern(regexp = "\\A(?!\\s*\\Z).+")
String str;
Việc sử dụng annotation này giúp cho quá trình kiểm tra dữ liệu đơn giản và linh hoạt hơn rất nhiều. Đặc biệt là trong các trường hợp tham số đầu vào gồm nhiều trường. Ví dụ như sau:
@Data
public class StudentSdi {
@Pattern(regexp = "\\A(?!\\s*\\Z).+")
private String name;
@Pattern(regexp = "\\A(?!\\s*\\Z).+")
private String address;
@Pattern(regexp = "\\A(?!\\s*\\Z).+")
private String code;
//...
}
Để sử dụng được thư viện này các bạn có thể thêm dependency sau vào file pom.xml
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
Ngoài ra anh em có thể tham khảo thêm một số thư viện sau:
+ Apache Commons:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
+ Google Guava:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>31.0.1-jre</version>
</dependency>
5. Lời kết
Okay, vậy là trong bài viết này mình đã cùng anh em tìm hiểu về một kiến thức tưởng chường rất căn bản trong Java nhưng không phải ai cũng nắm rõ và phân biệt được.
Hẹn gặp lại anh em trong các bài viết tiếp theo nhé! Gút bai anh em 👋👋👋
Không có nhận xét nào: