Giới Thiệu Thư Viện Phổ Biến Của Java - Commons Lang3 - GP Coder

Trong bài này, tôi sẽ giới thiệu với các bạn một thư viện rất phổ biến của Java là commons lang3, hầu hết các ứng dụng trong Java đều sử dụng thư viện này.

Thư viện Apache Commons Lang 3 cung cấp rất nhiều phương thức hỗ trợ các lớp Java Core, bao gồm các phương thức để xử lý: strings, numbers, dates, concurrency, reflection, …

Nội dung

  • 1 Tạo project maven và khai báo thư viện common lang3
  • 2 Lớp commons.lang3.StringUtils
  • 3 Lớp commons.lang3.BooleanUtils
  • 4 Lớp commons.lang3.text.NumberUtils
  • 5 Lớp commons.lang3.text.WordUtils
  • 6 Lớp commons.lang3.text.RandomStringUtils

Tạo project maven và khai báo thư viện common lang3

Để sử dụng các phương thức của commons lang3, chúng ta cần khai báo thư viện này vào project.

Có nhiều cách để khai báo thư viện vào project, cách đơn giản nhất là chúng ta sẽ tạo một project maven và khai báo thư viện commons lang3 vào file pom.xml của project như sau:

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.7</version> </dependency>

Lớp commons.lang3.StringUtils

Lớp StringUtils bao gồm rất nhiều phương thức hỗ trợ thao tác trên chuỗi, bên dưới là một số phương thức thường được sử dụng:

  • abbreviate() : trả về chuỗi viết tắt bằng cách sử dụng ellipses.
  • capitalize() : viết hoa chữ cái đầu tiên của chuỗi.
  • appendIfMissing() : trả về một chuỗi mới nếu hậu tố được thêm vào, ngược lại trả về cùng một chuỗi.
  • prependIfMissing() : trả về một chuỗi mới nếu tiền tố được thêm vào, ngược lại trả về cùng một chuỗi.
  • containsAny() : Kiểm tra nếu chuỗi chứa bất kỳ ký tự nào trong tập ký tự hay chuỗi đã cho.
  • containsIgnoreCase() : Kiểm tra nếu chuỗi chứa một chuỗi đã cho và không phân biệt hoa thường.
  • countMatches()  : Đếm bao nhiêu lần chuỗi con xuất hiện trong chuỗi
  • defaultIfEmpty() : trả về chuỗi mặc định nếu chuỗi được cho là empty hoặc null, nếu không thì trả về cùng một chuỗi.
  • defaultIfBlank() : trả về chuỗi mặc định nếu chuỗi được cho là blank hoặc null, nếu không trả về cùng một chuỗi.
  • defaultString() : trả về một chuỗi rỗng nếu chuỗi được cho là null, nếu không trả về cùng một chuỗi.
  • equalsIgnoreCase(): trả về giá trị TRUE nếu 2 chuỗi đã cho là bằng nhau không phân biệt hoa thường. Phương thức này tương tự như string.equalsIgnoreCase() nhưng nó hạn chế được lỗi NullPointerException.
  • indexOfIgnoreCase() : trả về chỉ mục đầu tiên của chuỗi tìm kiếm trong chuỗi ký tự đã cho không phân biệt hoa thường.
  • isAlphanumeric() : trả về TRUE nếu chuỗi đã cho chỉ chứa các ký tự chữ và số.
  • isAlpha() : trả về TRUE nếu chuỗi đã cho chỉ chứa các ký tự chữ cái.
  • isNumeric() : trả về TRUE nếu chuỗi đã cho chỉ chứa các ký tự số.
  • isBlank() : trả về TRUE nếu chuỗi đã cho là blank.
  • isEmpty() : trả về TRUE nếu chuỗi đã cho là empty.
  • isNotBlank() : trả về TRUE nếu chuỗi đã cho là không blank.
  • isNotEmpty() : trả về TRUE nếu chuỗi đã cho là không empty.
  • left(): trả về các ký tự bên trái của chuỗi đã cho với độ dài xác định.
  • right(): trả về các ký tự bên phải của chuỗi đã cho với độ dài xác định.
  • leftPad() : trả về chuỗi với các ký tự được thêm vào bên trái nếu chuỗi không đủ độ dài được chỉ định, ngược lại trả về chuỗi ban đầu.
  • rightPad() : trả về chuỗi với các ký tự được thêm vào bên phải nếu chuỗi không đủ độ dài được chỉ định, ngược lại trả về chuỗi ban đầu.
  • reverse(): đảo thứ tự các ký tự của một chuỗi.
  • trim() : gỡ bỏ các ký tự rỗng khỏi cả hai đầu của chuỗi này.
  • trimToEmpty(): Nếu chuỗi được cho là NULL nó sẽ trả về chuỗi EMPTY, nếu không sẽ trả về chuỗi đã được gỡ bỏ các ký tự rỗng khỏi cả hai đầu.
  • trimToNull(): Nếu chuỗi được cho là EMPTY nó sẽ trả về chuỗi NULL, nếu không sẽ trả về chuỗi đã được gỡ bỏ các ký tự rỗng khỏi cả hai đầu.

Ví dụ:

package com.gpcoder; import org.apache.commons.lang3.StringUtils; public class StringUtilsExample { public static void abbreviate() { // returns the abbreviated String using ellipses System.out.println(StringUtils.abbreviate(null, 6)); // null System.out.println(StringUtils.abbreviate("", 6)); // "" System.out.println(StringUtils.abbreviate("abcdefgh", 6)); // abc... System.out.println(StringUtils.abbreviate("abcdefgh", 4));// a... } public static void capitalize() { // capitalizes only the first letter of string System.out.println(StringUtils.capitalize(null)); System.out.println(StringUtils.capitalize("")); System.out.println(StringUtils.capitalize("gp coder")); // Gp coder System.out.println(StringUtils.capitalize("gp Coder")); // Gp Coder System.out.println(StringUtils.capitalize("GP Coder")); // GP Coder System.out.println(StringUtils.capitalize("gp coder")); // Gp coder } public static void appendIfMissing() { // A new String if suffix was appended, the same string otherwise. System.out.println(StringUtils.appendIfMissing("gpcoder.com", ".com")); // gpcoder.com } public static void prependIfMissing() { // A new String if prefix was prepended, the same string otherwise. System.out.println(StringUtils.prependIfMissing("gpcoder.com", "www.")); // www.gpcoder.com } public static void containsAny() { // Checks if the string contains any character in the given set of // characters or string. String string = "gpcoder.com"; System.out.println(StringUtils.containsAny(string, 'a', 'b', 'c')); // true System.out.println(StringUtils.containsAny(string, 'x', 'y', 'z')); // false System.out.println(StringUtils.containsAny(string, "abc")); // true System.out.println(StringUtils.containsAny(string, "xyz")); // false } public static void containsIgnoreCase() { System.out.println(StringUtils.containsIgnoreCase("gpcoder.com", "GPCODER")); // true } public static void countMatches() { // Counts how many times the substring appears in the string. String string = "welcome to www.gpcoder.com"; System.out.println(StringUtils.countMatches(string, 'w')); // 4 System.out.println(StringUtils.countMatches(string, "com")); // 2 } public static void defaultIfEmpty() { // returns default string if the given string is empty or null, otherwise // returns the same string back String defaultString = "gpcoder"; System.out.println(StringUtils.defaultIfEmpty(null, defaultString)); // gpcoder System.out.println(StringUtils.defaultIfEmpty("", defaultString)); // gpcoder System.out.println(StringUtils.defaultIfEmpty(" ", defaultString)); // " " System.out.println(StringUtils.defaultIfEmpty("java", defaultString)); // java } public static void defaultIfBlank() { // returns default string if the given string is blank or null, otherwise // returns the same string back. String defaultString = "gpcoder"; System.out.println(StringUtils.defaultIfBlank(null, defaultString)); // gpcoder System.out.println(StringUtils.defaultIfBlank("", defaultString)); // gpcoder System.out.println(StringUtils.defaultIfBlank(" ", defaultString)); // gpcoder System.out.println(StringUtils.defaultIfBlank("java", defaultString)); // java } public static void defaultString() { // returns an empty string if the given string is null, otherwise returns the // same string back. String defaultString = "gpcoder"; System.out.println(StringUtils.defaultString(null, defaultString)); // gpcoder System.out.println(StringUtils.defaultString("", defaultString)); // "" System.out.println(StringUtils.defaultString(" ", defaultString)); // " " System.out.println(StringUtils.defaultString("java", defaultString)); // java } public static void equalsIgnoreCase() { // Compares two CharSequences, returning true if they represent equal sequences // of characters, ignoring case. System.out.println(StringUtils.equalsIgnoreCase(null, null)); // true System.out.println(StringUtils.equalsIgnoreCase(null, "")); // false System.out.println(StringUtils.equalsIgnoreCase("", "")); // true System.out.println(StringUtils.equalsIgnoreCase("", " ")); // false System.out.println(StringUtils.equalsIgnoreCase("GPCODER", "gpcoder")); // true System.out.println(StringUtils.equalsIgnoreCase("GPCODER", "GPCODER")); // true } public static void indexOfIgnoreCase() { // returns the first index of the search string in the given char sequence // irrespective of the case. System.out.println(StringUtils.indexOfIgnoreCase(null, null)); // -1 System.out.println(StringUtils.indexOfIgnoreCase("DBCABCA", "ab")); // 3 System.out.println(StringUtils.indexOfIgnoreCase("DBCABCA", "Ab")); // 3 System.out.println(StringUtils.indexOfIgnoreCase("DBCABCA", "ABC")); // 3 } public static void isAlphanumeric() { // returns TRUE if the given string contains only alpha numeric characters. System.out.println(StringUtils.isAlphanumeric(null)); // false System.out.println(StringUtils.isAlphanumeric("")); // false System.out.println(StringUtils.isAlphanumeric(" ")); // false System.out.println(StringUtils.isAlphanumeric("gpcoder")); // true System.out.println(StringUtils.isAlphanumeric("gp coder")); // false System.out.println(StringUtils.isAlphanumeric("1234")); // true System.out.println(StringUtils.isAlphanumeric("gpcoder90")); // true } public static void isBlank() { // returns TRUE if the given string is blank. System.out.println(StringUtils.isBlank(null)); // true System.out.println(StringUtils.isBlank("")); // true System.out.println(StringUtils.isBlank(" ")); // true System.out.println(StringUtils.isBlank("gpcoder")); // false } public static void isEmpty() { // returns TRUE if the given string is empty. System.out.println(StringUtils.isEmpty(null)); // true System.out.println(StringUtils.isEmpty("")); // true System.out.println(StringUtils.isEmpty(" ")); // false System.out.println(StringUtils.isEmpty("gpcoder")); // false } public static void left() { // returns the leftmost length characters of given String. System.out.println(StringUtils.left(null, 4)); // null System.out.println(StringUtils.left("", 4)); // "" System.out.println(StringUtils.left("", -1)); // "" System.out.println(StringUtils.left("gpcoder", -1)); // "" System.out.println(StringUtils.left("gpcoder", 2)); // gp System.out.println(StringUtils.left("gpcoder", 4)); // gpco System.out.println(StringUtils.left("gpcoder", 7)); // gpcoder } public static void leftPad() { // left padded String or original String if no padding is necessary, return null // if null String input System.out.println(StringUtils.leftPad("9", 4, "0")); // 0009 System.out.println(StringUtils.leftPad("99", 4, "0")); // 0099 System.out.println(StringUtils.leftPad("999", 4, "0")); // 0999 System.out.println(StringUtils.leftPad("9999", 4, "0")); // 9999 System.out.println(StringUtils.leftPad("99999", 4, "0")); // 99999 } public static void rightPad() { System.out.println(StringUtils.rightPad("9", 4, "0")); // 9000 System.out.println(StringUtils.rightPad("99", 4, "0")); // 9900 System.out.println(StringUtils.rightPad("999", 4, "0")); // 9990 System.out.println(StringUtils.rightPad("9999", 4, "0")); // 9999 System.out.println(StringUtils.rightPad("99999", 4, "0"));// 99999 } public static void reverse() { System.out.println(StringUtils.reverse(null)); // null System.out.println(StringUtils.reverse("")); // "" System.out.println(StringUtils.reverse(" ")); // " " System.out.println(StringUtils.reverse("java")); // avaj System.out.println(StringUtils.reverse("gpcoder blog")); // golb redocpg } public static void trim() { System.out.println(StringUtils.trim(null)); // "" System.out.println(StringUtils.trim("")); // "" System.out.println(StringUtils.trim(" ")); // "" System.out.println(StringUtils.trim(" gpcoder.com ")); // gpcoder.com } public static void trimToEmpty() { // If the string is NULL it returns EMPTY, otherwise trims the string System.out.println(StringUtils.trimToEmpty(null)); // "" System.out.println(StringUtils.trimToEmpty("")); // "" System.out.println(StringUtils.trimToEmpty(" ")); // "" System.out.println(StringUtils.trimToEmpty(" gpcoder.com ")); // gpcoder.com } public static void trimToNull() { // If the result of string after trim is EMPTY it returns NULL, otherwise // returns trimmed string System.out.println(StringUtils.trimToNull(null)); // null System.out.println(StringUtils.trimToNull("")); // null System.out.println(StringUtils.trimToNull(" ")); // null System.out.println(StringUtils.trimToEmpty(" gpcoder.com ")); // gpcoder.com } }

Còn rất nhiều phương thức khác của lớp StringUtils, các bạn hãy tham khảo thêm ở link bên dưới:

  • API của lớp StringUtils
  • Source code ví dụ trên Github 

Lớp commons.lang3.BooleanUtils

Lớp BooleanUtils cung cấp các phương thức thao tác liên quan đến giá trị kiểu Boolean, bao gồm:

  • toBoolean(int value) : trả về true nếu value != 0, ngược lại trả về fasle nếu value = 0.
  • toBoolean(String str) : trả về true nếu str != null và str khớp với chuỗi ‘true’ hoặc ‘on’, ngược lại trả về fasle.
  • toInteger() : trả về 1 nếu true, ngược lại trả về 0.
  • toStringOnOff() : trả về giá trị ‘on’, ‘off’, hoặc null.
  • toStringTrueFalse() : trả về giá trị ‘true’, ‘false’, hoặc null.
  • toStringYesNo() : trả về giá trị ‘yes’, ‘no’, hoặc null.

Ví dụ:

package com.gpcoder; import org.apache.commons.lang3.BooleanUtils; public class BooleanUtilsExample { public static void toBoolean() { // toBoolean(int value) return true if non-zero, false if zero System.out.println(BooleanUtils.toBoolean(0)); // false System.out.println(BooleanUtils.toBoolean(1)); // true System.out.println(BooleanUtils.toBoolean(2)); // true System.out.println(BooleanUtils.toBoolean(-1)); // true System.out.println(BooleanUtils.toBoolean(-2)); // true // toBoolean(String str): return false if no match or the String is null System.out.println(BooleanUtils.toBoolean((String) null)); // false System.out.println(BooleanUtils.toBoolean("true")); // true System.out.println(BooleanUtils.toBoolean("false")); // false System.out.println(BooleanUtils.toBoolean("TruE")); // true System.out.println(BooleanUtils.toBoolean("FalsE")); // false System.out.println(BooleanUtils.toBoolean("on")); // true System.out.println(BooleanUtils.toBoolean("ON")); // true System.out.println(BooleanUtils.toBoolean("off")); // false System.out.println(BooleanUtils.toBoolean("OFF")); // false System.out.println(BooleanUtils.toBoolean("abc")); // false System.out.println(BooleanUtils.toBoolean("123")); // false } public static void toInteger() { System.out.println(BooleanUtils.toInteger(true)); // 1 System.out.println(BooleanUtils.toInteger(false)); // 0 } public static void toStringXXX() { System.out.println(BooleanUtils.toStringOnOff(null)); // null System.out.println(BooleanUtils.toStringOnOff(Boolean.TRUE)); // on System.out.println(BooleanUtils.toStringOnOff(Boolean.FALSE)); // off System.out.println(BooleanUtils.toStringTrueFalse(null)); // null System.out.println(BooleanUtils.toStringTrueFalse(Boolean.TRUE)); // true System.out.println(BooleanUtils.toStringTrueFalse(Boolean.FALSE)); // false System.out.println(BooleanUtils.toStringYesNo(null)); // null System.out.println(BooleanUtils.toStringYesNo(Boolean.TRUE)); // yes System.out.println(BooleanUtils.toStringYesNo(Boolean.FALSE)); // no } }

Lớp commons.lang3.text.NumberUtils

  • max(primitiveType… array) : trả về một số lớn nhất trong mảng.
  • min(primitiveType… array) : trả về một số nhỏ nhất trong mảng.
  • toInt(String str, int defaultValue) : trả về một số kiểu int. Nếu không thể chuyển về số nguyên sẽ trả về số mặc định là 0 hoặc defaultValue.
  • toDouble(String str, double defaultValue) : trả về một số kiểu int. Nếu không thể chuyển về số nguyên sẽ trả về số mặc định là 0 hoặc defaultValue.

Ví dụ:

package com.gpcoder; import org.apache.commons.lang3.math.NumberUtils; public class NumberUtilsExample { public static void main(String[] args) { System.out.println(NumberUtils.min(4, 2, 6)); // 2 System.out.println(NumberUtils.min(1.0, 1.6, 2.0, 0.8)); // 0.8 System.out.println(NumberUtils.min(new long[] { 1, 4, 2, 6, 5, 3 })); // 2 System.out.println(NumberUtils.max(4, 2, 6)); // 6 System.out.println(NumberUtils.max(1.0, 1.6, 2.0, 0.8)); // 2.0 System.out.println(NumberUtils.max(new long[] { 1, 4, 2, 6, 5, 3 })); // 6 // NumberUtils.toInt(String str) System.out.println(NumberUtils.toInt(null)); // 0 System.out.println(NumberUtils.toInt("")); // 0 System.out.println(NumberUtils.toInt("123")); // 123 // NumberUtils.toInt(String str, int defaultValue) System.out.println(NumberUtils.toInt(null, 1)); // 1 System.out.println(NumberUtils.toInt("", 1)); // 1 System.out.println(NumberUtils.toInt("123", 1)); // 123 // NumberUtils.toDouble(String str) System.out.println(NumberUtils.toDouble(null)); // 0.0 System.out.println(NumberUtils.toDouble("")); // 0.0 System.out.println(NumberUtils.toDouble("3.14")); // 3.14 // NumberUtils.toDouble(String str, double defaultValue) System.out.println(NumberUtils.toDouble(null, 1)); // 1.0 System.out.println(NumberUtils.toDouble("", 1)); // 1.0 System.out.println(NumberUtils.toDouble("3.14", 1)); // 3.14 } }

Lớp commons.lang3.text.WordUtils

  • capitalize() : Viết hoa chữ cái đầu tiên của mỗi từ.
  • capitalizeFully() : Viết hoa chữ cái đầu tiên của mỗi từ và các từ ký tự khác sẽ chuyển sang viết thường.

Ví dụ:

package com.gpcoder; import org.apache.commons.lang3.text.WordUtils; public class WordUtilsExample { public static void capitalize() { System.out.println(WordUtils.capitalize(null)); // null System.out.println(WordUtils.capitalize("")); // "" System.out.println(WordUtils.capitalize("java")); // Java System.out.println(WordUtils.capitalize("jAVa")); // JAVa System.out.println(WordUtils.capitalize("tutorials from gpcoder.com")); } public static void capitalizeFully() { System.out.println(WordUtils.capitalizeFully(null)); // null System.out.println(WordUtils.capitalizeFully("")); // "" System.out.println(WordUtils.capitalizeFully("java")); // Java System.out.println(WordUtils.capitalizeFully("welcome to gpcoder.com")); // Welcome To Gpcoder.com System.out.println(WordUtils.capitalizeFully("tutorials FROM GPCoder.com")); // Tutorials From Gpcoder.com } }

Lớp commons.lang3.text.RandomStringUtils

  • random(int count) : Tạo một chuỗi ngẫu nhiên có chiều dài là số ký tự được chỉ định, không giới hạn loại ký tự được trả về.
  • randomAscii(int count) : Tạo một chuỗi ngẫu nhiên có chiều dài là số ký tự được chỉ định, bao gồm các ký tự có giá trị ASCII từ 32 đến 126.
  • randomNumeric(int count) : Tạo một chuỗi số ngẫu nhiên có chiều dài là số ký tự được chỉ định, bao gồm các ký tự số 0-9.
  • randomAlphabetic(int count) : Tạo một chuỗi số ngẫu nhiên có chiều dài là số ký tự được chỉ định, bao gồm các ký tự chữ Latin (a-z, A-Z).
  • randomAlphanumeric(int count) : Tạo một chuỗi số ngẫu nhiên có chiều dài là số ký tự được chỉ định, bao gồm các ký tự chữ Latin (a-z, A-Z) và số 0-9.
  • random(int count, String input) : Tạo một chuỗi số ngẫu nhiên có chiều dài là số ký tự được chỉ định, chỉ bao gồm các ký tự được xác định trong input.

Ví dụ:

package com.gpcoder; import org.apache.commons.lang3.RandomStringUtils; public class RandomStringUtilsExample { public static void main(String[] args) { System.out.println(RandomStringUtils.random(4)); // System.out.println(RandomStringUtils.random(6)); // 㚔쬩́㽩 System.out.println(RandomStringUtils.randomAscii(4)); // qe51 System.out.println(RandomStringUtils.randomAscii(6)); // MqQ^X\ System.out.println(RandomStringUtils.randomNumeric(4)); // 9808 System.out.println(RandomStringUtils.randomNumeric(6)); // 338756 System.out.println(RandomStringUtils.randomAlphabetic(4)); // kvMu System.out.println(RandomStringUtils.randomAlphabetic(6)); // PeykyQ System.out.println(RandomStringUtils.randomAlphanumeric(4)); // MavC System.out.println(RandomStringUtils.randomAlphanumeric(6)); // fR2BEf String input = "abcd1234!@#$%^&*()-=_+;:<>,.?/"; System.out.println(RandomStringUtils.random(4, input)); // 1)+( System.out.println(RandomStringUtils.random(6, input)); // -c=,a, } }

Trên đây là một số phương thức thường được sử dụng của thư viện Commons lang3. Ngoài ra còn rất nhiều phương thức khác, các bạn hãy xem thêm trên trang document của Common lang3.

Tài liệu tham khảo:

  • http://commons.apache.org/proper/commons-lang/javadocs/api-release/overview-summary.html
  • http://bethecoder.com/applications/tutorials/tools-and-libs/commons-lang3.html
5.004 Nếu bạn thấy hay thì hãy chia sẻ bài viết cho mọi người nhé! Và Donate tác giảShares

Chuyên mục: Java library Được gắn thẻ: commonlang3

Giới thiệu thư viện phổ biến của java – Project LombokGiới thiệu Java 8

Có thể bạn muốn xem:

  • Giới thiệu Google Guice – Injection, Scope (07/02/2019)
  • Tạo ứng dụng Java RESTful Client với thư viện OkHttp (15/07/2019)
  • Tạo ứng dụng Java RESTful Client với thư viện Retrofit (18/07/2019)
  • Giới thiệu Google Guice – Dependency injection (DI) framework (04/02/2019)
  • Giới thiệu thư viện Apache Commons Chain (01/05/2019)

Bình luận

bình luận

Từ khóa » Thư Viện Trong Java