美文网首页
Guava 中的字符串工具类

Guava 中的字符串工具类

作者: hemiao3000 | 来源:发表于2020-04-25 21:53 被阅读0次

本片内容收录在我的在线笔记 java-note-for-free 中。

笔记源文件在 gitee 中。

对字符串的操作常见的有:

  • 字符串的判断
  • 字符串的拼接
  • 字符串的拆分
  • 字符串内容的替换

对字符串的判断:Strings 类

import com.google.common.base.Strings;
  • isNullOrEmpty(...)

    判断字符串是否为Null或空("")

    // Strings.isNullOrEmpty(input) demo
    String input = "";
    boolean isNullOrEmpty = Strings.isNullOrEmpty(input);
    System.out.println("input " + (isNullOrEmpty ? "is" :"is not") + " null or empty.");
    

对字符串作拼接:Spliter 类

import com.google.common.base.Joiner;

guava 为我们提供了 Joiner 类来做字符串的合并

  • 一个简单的示例:

    // "hello world"
    Joiner.on("").join(new String[]{"hello", "world"}); 
    

    上面例子中我们使用 Joiner.on(" ").join(xx) 来合并字符串。很简单也很有效。

  • 另一个例子:

    StringBuffer sb = new StringBuffer("");
    
    // "hello, world, goodbye"
    Joiner.on(", ").appendTo(sb, Lists.newArrayList("hello", "world", "goodbye"));
    

对字符串的拆分:Splitter

import com.google.common.base.Splitter;
  • 一个简单的例子:

    // 拆分出 4 个字符串:"hello", " world", " ", " goodbye"  
    Iterable<String> ret = Splitter.on(",").split("hello, world, , goodbye");
    
    • on() 方法用于指明分隔符
    • split() 方法表示对目标字符串进行拆分。split() 方法还有一个 splitToList() 的“兄弟”方法 。

    注意,由于目标字符串的原因,上述代码拆分的结果中有两样“讨厌”的东西

    1. 空格

    2. 空字符串

  • 对上述例子的“改进”:

    // 拆分出 3 个字符串:"hello", "world", "goodbye"  
    Iterable<String> ret = Splitter.on(",")
          .omitEmptyStrings()
          .trimResults()
          .split("hello, world, , goodbye");
    

    多出来的两个方法调用:

    • omitEmptyStrings() 表示忽略拆出来的空字符串
    • trimResults() 方法表示要对每个拆分结果做 trim 操作

on() 方法有一个更高级的支持正则表达式的“兄弟”方法:onPattern()

我们先看一个基本的拆分例子:

// 拆除分出 4 个字符串:"hello" "word" "世界" "和平"
List<String> splitResults = Splitter.onPattern("[,,]{1,}")
        .trimResults()
        .omitEmptyStrings()
        .splitToList("hello,world,,世界, 和平");  

字符串内容的替换:CharMatcher

import com.google.common.base.CharMatcher;

CharMatcher 提供了多种对字符串处理的方法, 它的主要意图有:

  1. 找到匹配的字符
  2. 处理匹配的字符

通过 CharMatcher 对字符串进行操作(包括但不仅包括“替换”),也是分为两个步:选中/匹配字符串中的某部分,而后进行某种操作。

  • 一个简单的例子:

    // "hell wrld"
    ret = CharMatcher.is('o').removeFrom("hello world");
    
    • is() 方法表示所需要选中/匹配的内容
    • removeFrom() 表示对目标字符串中所选中的内容进行的操作。这个例子中是删除。
    // "heLLo worLd" 这个例子中的操作是替换
    ret = CharMatcher.is('l').replaceFrom("hello world", 'L');
    

CharMatcher 提供的选中/匹配方法包括但不仅包括 is ( ),提供的操作方法包括但不仅包括 removeFrom ( )replaceFrom ( )

相关文章

网友评论

      本文标题:Guava 中的字符串工具类

      本文链接:https://www.haomeiwen.com/subject/bnulwhtx.html