guava-libraries之String介紹

CharMatcher

//原字符串
System.out.println(string);

//去掉控制字符(\t,\n,\b...)
System.out.println(CharMatcher.JAVA_ISO_CONTROL.removeFrom(string));

//獲取所有的數字
System.out.println(CharMatcher.DIGIT.retainFrom(string));

//把多個空格替換爲一個包括\t,並去掉首位的空格
System.out.println(CharMatcher.WHITESPACE.trimAndCollapseFrom(string, ' '));

//把所有的數字用"*"代替
System.out.println(CharMatcher.JAVA_DIGIT.replaceFrom(string, "*"));

//獲取所有的數字和小寫字母
System.out.println(CharMatcher.JAVA_DIGIT.or(CharMatcher.JAVA_LOWER_CASE).retainFrom(string));

//獲取所有的大寫字母
System.out.println(CharMatcher.JAVA_UPPER_CASE.retainFrom(string));

//獲取所有單字節長度的符號
System.out.println(CharMatcher.SINGLE_WIDTH.retainFrom(string));
		
/*
原字符串:
  ROCKY  rocky  RoCkY ~!@#$%^&*()      23(*&gS   你好	234啊   GES  

去掉控制字符(\t,\n,\b...):
  ROCKY  rocky  RoCkY ~!@#$%^&*()      23(*&gS   你好234啊   GES  

獲取所有的數字:
23234

把多個空格替換爲一個包括\t,並去掉首位的空格:
ROCKY rocky RoCkY ~!@#$%^&*() 23(*&gS 你好 234啊 GES

把所有的數字用"*"代替:
  ROCKY  rocky  RoCkY ~!@#$%^&*()      **(*&gS   你好	***啊   GES  

獲取所有的數字和小寫字母:
rockyok23g234

獲取所有的大寫字母:
ROCKYRCYSGES

獲取所有單字節長度的符號:
  ROCKY  rocky  RoCkY ~!@#$%^&*()      23(*&gS   	234   GES  
*/
CharMatcher:
ANY NONE WHITESPACE BREAKING_WHITESPACE INVISIBLE
DIGIT JAVA_LETTER JAVA_DIGIT JAVA_LETTER_OR_DIGIT JAVA_ISO_CONTROL
JAVA_LOWER_CASE JAVA_UPPER_CASE ASCII SINGLE_WIDTH


Charsets

當我們需要用到編碼的時候我們應該用Charsets代替字符串使用,例如:
//我們不應該這樣寫
string.getBytes("UTF-8");
//而應該這樣寫
string.getBytes(Charsets.UTF_8);


Splitter

String str = "foRo-bar-- G  qux";
//使用char作爲參數
System.out.println(Splitter.on('-').split(str));
//使用CharMatcher作爲參數
System.out.println(Splitter.on(CharMatcher.JAVA_UPPER_CASE).split(str));
//使用正則表達式Pattern作爲參數
System.out.println(Splitter.on(Pattern.compile("[o-]")).split(str));
//使用正則表達式字符串作爲參數
System.out.println(Splitter.onPattern("[o-]").split(str));
/*
輸出結果:
[foRo, bar, ,  G  qux]
[fo, o-bar-- ,   qux]
[f, R, , bar, ,  G  qux]
[f, R, , bar, ,  G  qux]
 */
Splitter的功能還有
//去掉空字符串
System.out.println(Splitter.on('-').omitEmptyStrings().split(str));
//去掉結果的首位空格
System.out.println(Splitter.on('-').trimResults().split(str));
//去掉結果首位的'o'字符
System.out.println(Splitter.on('-').trimResults(CharMatcher.is('o')).split(str));
//規定分割爲多少個字符串
System.out.println(Splitter.on('-').limit(2).trimResults().split(str));
/*
輸出結果:
[foRo, obaro,   qux]
[foRo, obaro, , qux]
[foR, bar, ,   qux]
[foRo, obaro--  qux]
 */

Joiner

//把集合用'-'合併爲字符串
System.out.println(Joiner.on('-').join(Arrays.asList(1,4,6)));
//把多個Object用"*_*"合併爲字符串
System.out.println(Joiner.on("*_*").join("Tom","Jack","Rocky"));
//把一個數組用" -_- "合併爲字符串
System.out.println(Joiner.on(" -_- ").join(new String[]{"cat","dog","pig"}));
/*
輸出結果:
1-4-6
Tom*_*Jack*_*Rocky
cat -_- dog -_- pig
 */



更多內容請查看:http://code.google.com/p/guava-libraries/wiki/StringsExplained
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章