我就吃瓜(Guava): Joiner&Spliter

Joiner 和 Spliter的介绍和使用

Joiner : 主要用于字符串之间的拼接

  1. on() 参数为字符串或者字符,在进行拼接时联系元素

  2. skipNulls() 无参数,在进行拼接时,如果有元素为空,则跳过这个元素

  3. useForNull() 参数为非空字符串,在进行拼接时,如果有元素为空,使用参数替换这个元素

  4. appentdTo() 和 join() 两者的区别主要是在参数上。看源码就能发现,Joiner中的 join() 方法还是去

    调用的appentdTo()方法,两者灵活选择

  5. 栗子:

public class JoinerDemo {
    public static void main(String[] args) {
       /*
         on:制定拼接符号
         skipNulls():忽略NULL,返回一个新的Joiner实例
         useForNull(“Hello”):NULL的地方都用字符串”Hello”来代替
        */
        StringBuilder sb = new StringBuilder();
        Joiner.on(",").skipNulls().appendTo(sb, "Hello", "guava");
        //Hello,guava
        System.out.println(sb);
        StringBuilder sb1 = new StringBuilder();
        String[] strings = {"Hello", null,"guava"};
        Joiner.on(".").skipNulls().appendTo(sb1, strings);
        //Hello,guava
        System.out.println(sb);
        //1,none,3
        System.out.println(Joiner.on(",").useForNull("none").join(1, null, 3));
        //1,2,3,4,6
        System.out.println(Joiner.on(",").skipNulls().join(Arrays.asList(1, 2, 3, 4, null, 6)));	
        //图转换为字符串
        Map<String, String> map = new HashMap<String, String>();
        map.put("key1", "value1");
        map.put("key2", "value2");
        map.put("key3", "value3");
        //key3=value3,key2=value2,key1=value1
        System.out.println(Joiner.on(",").withKeyValueSeparator("=").join(map));
    }
}

Spliter : 主要用于字符串之间的分割

  1. on() 参数为字符串或者字符或者正则表达式,以此进行字符串分割

  2. fixedLength() 参数为int,按照定长来进行字符串分割

  3. trimResults() 无参,分割时忽略空字符串元素

  4. omitEmptyStrings() 无参,分割时去掉元素前后的空格

  5. splitToList()和split() 的区别主要是在转换结果的不同,两者灵活选择

  6. 栗子:

public class SplitterDemo {
    public static void main(String[] args){
        String s = "a,b,c,d,e,";
        Iterable<String> split = Splitter.on(",").trimResults().split(s);
        Iterator iterator = split.iterator();
        //abcde
        while (iterator.hasNext()){
            System.out.print(iterator.next());
        }
        List<String> strings = Splitter.on(",").trimResults().splitToList(s);
        //[a, b, c, d, e, ]
        System.out.println(strings);
        List<String> strings1 = Splitter.fixedLength(2).splitToList(s);
        //[a,, b,, c,, d,, e,]
        System.out.println(strings1);
        List<String> stringList = 	               
        Splitter.on(",").trimResults().omitEmptyStrings().splitToList(s);
        //[a, b, c, d, e]
        System.out.println(stringList);
        //字符串转换为图
        String map = "1:z;2:x;3:c";
        Map<String, String> stringMap = Splitter.on(";").withKeyValueSeparator(":").split(map);
        for (String strSet : stringMap.keySet()) {
            System.out.println(stringMap.get(strSet));
        }
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值