處理文本對
Java
應用來說應該算是家常便飯了,在
1.4
出現之前,
Java
自身提供的
API
非常有限,如
String
、
StringTokenizer
、
StringBuffer
,操作也比較單一。無非就是查找
substring
、分解、合并等等。到
1.4
的出現可以說
Java
的文字處理上了一個臺階,因為它支持
regular expression
了。這可是個重量級而方便的東東啊,缺點是太復雜,學習起來有一定難度。相較而言,
Jakarta Commons
提供的
StringUtils
和
WordUtils
至今還維持著那種簡潔而強大的美,使用起來也很順手。來看一個例子:
?
package
sean.study.jakarta.commons.lang;
?
import
org.apache.commons.lang.StringUtils;
?
public
class
StringUtilsAndWordUtilsUsage {
?
???
public
static
void
main(String[] args) {
???????
??????? // data setup
??????? String str1 = "";
??????? String str2 = " ";
??????? String str3 = "\t";
??????? String str4 = null;
??????? String str5 = "123";
??????? String str6 = "ABCDEFG";
??????? String str7 = "It feels good to use Jakarta Commons.\r\n";
???????
??????? // check for empty strings
??????? System.out.println("==============================");
??????? System.out.println("Is str1 blank? " + StringUtils.isBlank(str1));
??????? System.out.println("Is str2 blank? " + StringUtils.isBlank(str2));
??????? System.out.println("Is str3 blank? " + StringUtils.isBlank(str3));
??????? System.out.println("Is str4 blank? " + StringUtils.isBlank(str4));
???????
??????? // check for numerics
??????? System.out.println("==============================");
??????? System.out.println("Is str5 numeric? " + StringUtils.isNumeric(str5));
??????? System.out.println("Is str6 numeric? " + StringUtils.isNumeric(str6));
???????
??????? // reverse strings / whole words
??????? System.out.println("==============================");
??????? System.out.println("str6: " + str6);
??????? System.out.println("str6 reversed: " + StringUtils.reverse(str6));
??????? System.out.println("str7: " + str7);
??????? String str8 = StringUtils.chomp(str7);
??????? str8 = StringUtils.reverseDelimited(str8, ' ');
??????? System.out.println("str7 reversed whole words : \r\n" + str8);
???????
??????? // build header (useful to print log messages that are easy to locate)
??????? System.out.println("==============================");
??????? System.out.println("print header:");
??????? String padding = StringUtils.repeat("=", 50);
??????? String msg = StringUtils.center(" Customised Header ", 50, "%");
??????? Object[] raw = new Object[]{padding, msg, padding};
??????? String header = StringUtils.join(raw, "\r\n");
??????? System.out.println(header);
?
??? }
}
?
輸出的結果如下:
?
==============================
Is str1 blank? true
Is str2 blank? true
Is str3 blank? true
Is str4 blank? true
==============================
Is str5 numeric? true
Is str6 numeric? false
==============================
str6: ABCDEFG
str6 reversed: GFEDCBA
str7: It feels good to use Jakarta Commons.
?
str7 reversed whole words :
Commons. Jakarta use to good feels It
==============================
print header:
==================================================
%%%%%%%%%%%%%%% Customised Header %%%%%%%%%%%%%%%%
==================================================
?
從代碼中我們可以大致了解到這個
StringUtils
類簡單而強大的處理能力,從檢查空串(對
null
的情況處理很得體),到分割子串,到生成格式化的字符串,使用都很簡潔,也很直截了當。
posted @
2007-03-16 22:32 terryliu 閱讀(396) |
評論 (0) |
編輯 收藏