Guava學習筆記(Strings,Joiner,Splitter,CharMacher)

1.Strings

用途:字符串判空,前後拼接指定字符以達到某個長度,複製自身
示例:

1.字符串判空
    Strings.isNullOrEmpty("");//true
    Strings.nullToEmpty(null);//""
    Strings.nullToEmpty("a");//"a"
    Strings.emptyToNull("");//null
    Strings.emptyToNull("a");//"a"

2.在字符串前拼接指定字符達到某個長度
Strings.padStart("7", 3, '0'); //007
3.在字符串後拼接指定字符達到某個長度
Strings.padEnd("7", 3, '0'); //700
4.複製自身
Strings.repeat("me", 3); //mememe
5.查找兩個字符串的公共前後綴
Strings.commonPrefix("aaab", "aac");//"aa"
Strings.commonSuffix("aaac", "aac");//"aac"

2.Joiner
用途:字符串追加
示例:

StringBuilder sb = new StringBuilder();
Joiner.on(" ").appendTo(sb, 1, 2, 3);
//也可傳入list
StringBuilder sb = new StringBuilder();
List<String> stringList = Lists.newArrayList("1","2","3");
Joiner.on("_").appendTo(sb, stringList);
//對空值的處理
List<String> stringList = Lists.newArrayList("1","2",null,"3");
Joiner.on("_").skipNulls().appendTo(sb, stringList); //跳過空值
Joiner.on("_").useForNull("none").appendTo(sb, stringList); //指定字符替換空值
System.out.println(sb.toString());
//還可以處理Map,將Map對象拼接成字符串
String Str = Joiner.on("|").withKeyValueSeparator("->").join(ImmutableMap.of(1, 2, 3, 4)); //withKeyValueSeparator傳入鍵值對之間的分隔符

3.Splitter
用途: Splitter 能夠將一個字符串按照指定的分隔符拆分成可迭代遍歷的字符串集合,Joiner的反向操作。
示例:

StringBuilder sb = new StringBuilder();
List<String> stringList = Lists.newArrayList("1","2",null,"3");
Joiner.on("_").skipNulls().appendTo(sb, stringList); //跳過空值
Iterable<String> stringIterable = Splitter.on("_").split(sb);
Iterator iterator = stringIterable.iterator();
while (iterator.hasNext()) {
    String s  = (String)iterator.next();
    System.out.println(s);
}

//Splitter 還支持使用正則表達式來描述分隔符。
Splitter.onPattern("\\s+").split("1 \t 2 3");
//Splitter 還支持根據長度來拆分字符串。
Splitter.fixedLength(3).split("1 2 3");

4. CharMacher
用途: CharMacher 提供一系列函數可對字符進行判定、計數、匹配
示例:

CharMatcher.is('a').matchesAllOf("aaa"); //判定是否存在,true
CharMatcher.is('s').indexIn("01ssssss"); //查找字符出現的位置
CharMatcher.is('s').countIn("sssssssss"); //統計字符出現的次數
CharMatcher.is('a').retainFrom("bazaar"); //去除非指定字符
CharMatcher.is('a').removeFrom("bazaar");//去除指定字符
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章