guava学习-字符串处理

guava初探-学习目录
guava对于字符串的处理优势主要在于 null 或空字符串的处理

连接(Joiner)

对于 null的处理使用 skipNulls 移除null

连接实例

   @Test
    public void Joinner() {
        List<String> strList = Arrays.asList("zs", "ls", null, "ww");
        String joinStr = Joiner.on(",").skipNulls().join(strList);
        System.out.println(joinStr);
    }
对于 null的处理使用 useForNull 替换
  @Test
   public void Joinners() {
       List<String> strList = Arrays.asList("zs", "ls", null, "ww");
       String joinStr = Joiner.on(",").useForNull("replace").join(strList);
       System.out.println(joinStr);
   }
对于map的转换 withKeyValueSeparator
Map<String, String> map = Maps.newHashMap();
       map.put("k1", "v1");
       map.put("k2", "v2");
       map.put("k3", "v3");
       String mapJoinerStr = Joiner.on(",").withKeyValueSeparator("=").join(map);
       System.out.println(mapJoinerStr);

拆分(Splitter)

guava的拆分有2类方法拆分工厂和修饰符(对于 null等的处理)

拆分工厂

方法 描述
Splitter.on(char) 按单个字符拆分
Splitter.on(CharMatcher) 按字符匹配器拆分
Splitter.on(String) 按字符串拆分
Splitter.onPattern(String) 按正则表达式拆分
Splitter.fixedLength(int) 按固定长度拆分;最后一段可能比给定长度短,但不会为空。

修饰器

方法 描述
omitEmptyStrings() 从结果中自动忽略空字符串
trimResults() 移除结果字符串的前导空白和尾部空白
trimResults(CharMatcher) 给定匹配器,移除结果字符串的前导匹配字符和尾部匹配字符
limit(int) 限制拆分出的字符串数量

拆分实例

需要拆分的字符串"zs,ls, ww ,"

  @Test
   public void splitter1() {
        String splitterStr = "zs,ls,    ww    ,,,,";
        List<String> splitterStrList = Splitter.on(",").splitToList(splitterStr);
        System.out.println(splitterStrList);
    }
移除多余的分隔符和字符串的前导空白和尾部空白
    @Test
    public void splitter2() {
        String splitterStr = "zs,ls,    ww    ,,,,";
        List<String> splitterStrList = Splitter.on(",").omitEmptyStrings().trimResults().splitToList(splitterStr);
        System.out.println(splitterStrList);
    }
限制拆分出的字符串数量(字符串以几部分来分隔)
  @Test
    public void splitte3() {
        String splitterStr = "zs,ls,ww";
        List<String> splitterStrList = Splitter.on(",").limit(2).splitToList(splitterStr);
        System.out.println(splitterStrList);
    }
按固定长度拆分(最后一段可能比给定长度短,但不会为空)
   @Test
    public void splitte4() {
        String splitterStr = "zs,ls,ww";
        List<String> splitterStrList = Splitter.fixedLength(3).splitToList(splitterStr);
        System.out.println(splitterStrList);
    }

猜你喜欢

转载自blog.csdn.net/wolf2s/article/details/106782839