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");//去除指定字符
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值