/** * Checks if a String is whitespace, empty ("") or null. (判斷 string 是否是空白, "" 或 null) */ String str = " "; System.out.println(StringUtils.isBlank(str)); // true str = " abc "; System.out.println(StringUtils.isBlank(str)); // false str = " "; // 全形 System.out.println(StringUtils.isBlank(str)); // true str = null; System.out.println(StringUtils.isBlank(str)); // true // 如果用 StringUtils.isNotBlank() <-- 則以上結果會相反 /** * Checks if a String is empty ("") or null. (判斷 string 是否是 "" 或 null, 與blank 的差別在於 whitespace ) */ String str = " "; System.out.println(StringUtils.isEmpty(str)); // false str = " abc "; System.out.println(StringUtils.isEmpty(str)); // false str = " "; // 全形 System.out.println(StringUtils.isEmpty(str)); // false str = null; System.out.println(StringUtils.isEmpty(str)); // true // 如果用 StringUtils.isNotEmpty() <--則以上結果會相反 /** * Compares two Strings, returning true if they are equal. (比較2個字串, 回傳是否相等) * nulls are handled without exceptions. (當 null 時, 不會發生 exception) * Two null references are considered to be equal. (皆為 null 時, 則認為是相同的.) * The comparison is case sensitive. (大小寫有差別) */ System.out.println(StringUtils.equals(null, null)); // true System.out.println(StringUtils.equals(null, "abc")); // false System.out.println(StringUtils.equals("abc", null)); // false System.out.println(StringUtils.equals("abc", "abc")); // true System.out.println(StringUtils.equals("abc", "ABC")); // false /** * 與 StringUtils.equals 的差別在於呼略大小寫 */ System.out.println(StringUtils.equalsIgnoreCase(null, null)); // true System.out.println(StringUtils.equalsIgnoreCase(null, "abc")); // false System.out.println(StringUtils.equalsIgnoreCase("abc", null)); // false System.out.println(StringUtils.equalsIgnoreCase("abc", "abc")); // true System.out.println(StringUtils.equalsIgnoreCase("abc", "ABC")); // true使用 StringUtils 可以減少錯誤的發生, 也可以少寫一些 code!
當然, 他的速度並不會比較慢唷, 如果基礎有打好的話, 用一些別人寫的好來開發, 或許是個不錯的選擇.
2012/03/07 補充 :
lang 目前已提供 3.x 版, 未來會提供 4 版, 主要的差別是配合 jdk 的版本一起升級, 2.6 之前有向下相容, 3.x 目前之援 jdk 5 以上
StringUtils 從原本的 org.apache.commons.lang.StringUtils 換成 org.apache.commons.lang3.StringUtils
以下再提供一些好用又常用的介紹 :
StringUtils --
1. StringUtils.defaltIfEmpty / StringUtils.defaultIfBlank 給初始值 StringUtils.defaultIfEmpty(request.getParameter("testParameter"), null); // 當抓不到值時要給什麼初始值 StringUtils.defaultIfBlank(request.getParameter("testParameter"), null); // 當抓不到值時要給什麼初始值 2. StringUtils.IsAlpha/IsNumeric/IsWhitespace/IsAsciiPrintable - checks the characters in a String // 是否是英文字 StringUtils.isAlpha("abc") = true StringUtils.isAlpha("123") = false // 是否是數字 StringUtils.isNumeric("123") = true StringUtils.isNumeric("abc") = false // 是否是英數字 StringUtils.isAlphanumeric("abc123") = true StringUtils.isAlphanumeric("abc123 ") = false StringUtils.isAlphanumeric("abc123 .,;") = false // 是否是英數字空白 StringUtils.isAlphanumericSpace("abc123") = true StringUtils.isAlphanumericSpace("abc123 ") = true StringUtils.isAlphanumericSpace("abc123 .,;") = false .... 3. 包含字串或字元 // 字串 StringUtils.contains(null, *) = false StringUtils.contains(*, null) = false StringUtils.contains("", "") = true StringUtils.contains("abc", "") = true StringUtils.contains("abc", "a") = true StringUtils.contains("abc", "z") = false // 字元 StringUtils.contains("abc", 'z') = false StringUtils.contains("abc", 'a') = true 其它 : remove, removeEnd, replace .... 請參考 api, 有很完善的教學
RandomStringUtils --
// 英文 RandomStringUtils.randomAlphabetic(5) = aSwqE 大小寫英文 // 英數 RandomStringUtils.randomAlphanumeric(5) = 12ABc // 數字 RandomStringUtils.randomNumeric(5) = 12341 // 自定 random(int count, boolean letters, boolean numbers) random(int count, String chars) RandomStringUtils.random(5, "abcd1234") = 123dc
org.apache.commons.lang3.math.NumberUtils --
createBigDecimal / createFloat / createDouble ... BigDecimal bigDecimal = NumberUtils.createBigDecimal("99999999999999") // 將字串轉成 BigDecimal min // 最出 array 最小值 NumberUtils.min(new int[] { 3, 1, 10, 100, 99, -10, 20 }) = -10 max // 最出 array 最小值 NumberUtils.max(new int[] { 3, 1, 10, 100, 99, -10, 20 }) = 100
沒有留言:
張貼留言