2009年8月18日 星期二

Lang-StringUtils

Jakarta 中 的 common-lang, 提供許多 java.lang.* 額外的 methods, 這次先說明 StringUtils 的一些常用的範例.


import org.apache.commons.lang.StringUtils;


public class StringUtilsDemo {

/**
* 1. Checks if a String is whitespace, empty ("") or null. (判斷 string 是否是空白, "" 或 null)
*/
public static void demoBlank() {
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() <-- 則以上結果會相反
}

/**
* 1. Checks if a String is empty ("") or null. (判斷 string 是否是 "" 或 null, 與
* blank 的差別在於 whitespace )
*/
public static void demoEmpty() {
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() <--則以上結果會相反
}

/**
* 1. Compares two Strings, returning true if they are equal. (比較2個字串,
* 回傳是否相等) 2. nulls are handled without exceptions. (當 null 時, 不會發生
* exception) 3. Two null references are considered to be equal. (皆為 null 時,
* 則認為是相同的.) 4. The comparison is case sensitive. (大小寫有差別)
*/
public static void demoEquals() {
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 的差別在於呼略大小寫
*/
public static void demoEqualsIgnoreCase() {
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
}

public static void main(String[] args) {
System.out.println("Demo StringUtils.isBlank ---");
demoBlank();

System.out.println("\n\nDemo StringUtils.isEmpty ---");
demoEmpty();

System.out.println("\n\nDemo StringUtils.equals ---");
demoEquals();

System.out.println("\n\nDemo StringUtils.equalsIgnoreCase ---");
demoEqualsIgnoreCase();

}
}


還有太多好用的 method 了, 如: trim, substring, replace, isNumeric ... 等, 要記得去看 api ^_^.
結論 :
使用 StringUtils 可以減少錯誤的發生, 也可以少寫一些 code @@, 當然, 他的速度並不會比較慢唷, 如果跟自己寫來比的話, 能用就用吧 ^^, 如果你基礎有打好的話, 用一些別人寫的好來開發, 或許是個不錯的選擇.

0 意見: