Xử lý String với Apache Commons Lang 3

Apache Commoms Lang 3 một thư viện java phổ biến, cung cấp các class tiện ích nhầm mở rộng các chức năng của Java API.

Thư viện này hỗ trợ khá nhiều tính năng từ thao tác stringarraycollection, reflection và concurrency, đến việc triển khai một số cấu trúc dữ liệu có thứ tự như Pair, Triples. 

Trong bài viết này, chúng ta sẽ cùng nhau tìm hiểu về StringUtils class hỗ trợ xử lý chuỗi trong Java.

Maven Dependency

StringUtils được cung cấp trong thư viện Apache Commons Lang 3, để sử dụng StringUtils trước tiên chúng ta cần thêm maven dependency của Apache Commons Lang 3.

Để sử dụng phiên bản Apache Commoms Lang 3 mới nhất các bạn có thể vào trang chủ để download.

StringUtils class

StringUtils class cung cấp rất nhiều method hỗ trợ thao tác với String, tuy nhiên có một số method trùng lặp mà String class cũng đã hỗ trợ như compare() method.

Trong bài viết này chúng ta sẽ bỏ qua các method trùng lặp giữa String class và StringUtils class. Thay vào đó chúng ta sẽ tìm hiểu các method riêng của StringUtils class để xem chúng sẽ giúp được gì nha.

StringUtils Field

StringUtils class định nghĩa sẵn cho chúng ta các hằng số thường sử dụng trong String như EMPTY, SPACE, LF, CR, etc

isBlank & isNotBlank

Thông thường, muốn kiểm tra 1 string có rỗng hay không thì chúng ta cần kiểm tra 2 điều kiện #null & != ” 

Nếu bạn xác định 1 string chỉ chứa 1 hoặc nhiều whitespace là rỗng thì sẽ có vấn đề đấy, như vậy thì chúng ta cần tiền xử lý bỏ các whitespace ở 2 đầu chuỗi rồi mới tiến hành kiểm tra, rắc rối quá phải không?

Sử dụng isBlank()isNotBlank() sẽ gói gọn các bước cần thực hiện trên để kiểm tra chuỗi.

containsAny

containsAny() method kiểm tra một string cho trước có chứa một tập các character hoặc một substring hay không?

containsIgnoreCase

containsIgnoreCase() kiểm tra một string có chứa một substring khác hay không mà không phân biệt ký tự hoa, thường.

countMatches

countMatches() method đếm số lần xuất hiện của 1 character hoặc một subtring trong một string cho trước.

Appending and Prepending Method

appendIfMissing() method sẽ thêm chuỗi suffix vào cuối một chuỗi cho trước nếu nó thiếu suffix ở cuối chuỗi. Tương tự, nhưng appendIfMissingIgnoreCase() không phân biệt ký tự hoa thường.

Tương tự prependIfMissing() prependIfMissingIgnoreCase() sẽ thêm chuỗi prefix và đầu chuỗi cho trước nếu nó thiếu chuỗi prefix ở đầu chuỗi.

reverse && reverseDelimited

StringUtils class cung cấp 2 method reverse() reverseDelimited() dùng để đảo ngược hoàn toàn hoặc đảo chuỗi theo ký tự ngăn cách.

Lưu ý: reverseDelimited(String str, character separatorChar) sẽ ngừng đảo ngược chuỗi cho đến khi gặp được ký tự separatorChar xuất hiện cuối cùng tính từ cuối chuỗi.

isAllLowerCase & isAllUpperCase

isAllLowerCase(CharSquence str) trả về true khi các ký tự trong chuỗi đều là ký tự thường. Trong khi isAllUpperCase(CharSquence str) trả về true khi các ký tự trong chuỗi đều là ký tự hoa.

Character processing

StringUtils cung cấp isAlpha(), isAlphanumeric(), isNumeric() để kiểm tra các đặc thù riêng của 1 chuỗi.

Tóm lược

StringUtils là một trong những class mình hay sử dụng để thao tác nhanh với String. Theo kinh nghiệm cá nhân mình thấy hầu hết các yêu cầu của mình đều đáp được StringUtils đáp ứng mà không cần phải viết thêm function để xử lý. Code vừa ngắn gọn vừa dễ hiểu, đọc đến tên method thôi là biết nó làm gì rồi đúng không nào!

Nguồn tham khảo

https://www.baeldung.com/string-processing-commons-lang

Leave a Comment

Your email address will not be published. Required fields are marked *