guava-docs:guavaApi
目录
Splitter: 拆分器
1. 构建splitter:
Splitter.on(String str): splitter.on(" ; ")
Splitter.onPattern(): 根据正则构建拆分
Splitter.fixedLength(int ) : 固定长度
2. splitter 是final修饰的 不可变的
public final class Splitter extends Object
3. split运用
Iterable<String> split1 = splitByComma.split("aa,bb,cc");
System.out.println(split1); // 【aa,bb,cc】
split 方法返回一个iterable,并且参数不能为null (Preconditions.checkNotNull(sequence);)
4. splitter 添加筛选条件
limit:
// limit ,拆分到指定的数量后,不再拆分,余下的归为一起
Iterable<String> split2 = splitByComma.limit(3).split("aa,bb,cc,dd,ee");
System.out.println(split2); //[aa, bb, cc,dd,ee] 拆分为三个元素,最后一个是cc,dd,ee
OmitEmptyStrings:
// omitEmptyStrings 遇到空字符串跳过去
// splitToList 返回Iterable有时候不好用,可直接返回list
splitByComma
.omitEmptyStrings()
.splitToList("aa,,bb,,cc")
.stream()
.forEach(System.out::print); // aa bb cc
trimResults:
// trimResults: 去除首尾空格, 也可以传入参数CharMatcher指定默认是空格
splitByComma
// .trimResults()
.trimResults(CharMatcher.isNot('a')) // 去除不匹配a的
.splitToList(" ab , c , d ,aa ")
.stream()
.forEach(System.out::print);
charMatcher: 具体参考 https://blog.csdn.net/victor_cindy1/article/details/52073155
withKeyValueSeparator:
// 切分k-v 形式的,返回一个map // 按照 逗号拆分字符串,withKeyValueSeparator按照井号拆分k-v Map<String, String> splitMap = Splitter.on(",") .withKeyValueSeparator("#") // 返回一个MapSplitter,对字符串进行k-v的拆分 .split("123#123,!1243#ee"); //{123=123, !1243=ee}
// 固定长度拆分
Splitter splitByfixedLength = Splitter.fixedLength(4);
List<String> abc = splitByfixedLength.splitToList("aaaabbbbcccc");
System.out.println(abc); //[aaaa, bbbb, cccc]
Joiner: 连接器
1. on 构建
Joiner joiner = Joiner.on("-");
2. skipNulls 跳过null
useForNull(string default) 遇到null时 使用默认值
String join = joiner .skipNulls() // 跳过null // .useForNull("default") // 遇到null 使用默认值代替,不能和skipNull一起使用 .join(Lists.newArrayList(1, 2, 3, null, 4, 5, 6)); // 1-2-3-4-5-6
3. withKeyValueSeparator
// 连接 map中的key value
String join1 = joiner.withKeyValueSeparator("->")
.join(ImmutableMap.of("A", "a", "B", "b"));
System.out.println(join1); //A->a-B->b
Strings:
// guava中的工具类大量适用 Preconditions.checkNotNull(a); 所有传入null会空指针
System.out.println(
// 公共前缀
Strings.commonPrefix("aaa","abc")
);
System.out.println(
// 公共后缀
Strings.commonSuffix("bcd","csa")
);
System.out.println(
// 空字符串转为null
Strings.emptyToNull("")
);
System.out.println(
// 判断是null还是空字符串
Strings.isNullOrEmpty(null)
);
System.out.println(
// null转空字符串
Strings.nullToEmpty(null)
);
System.out.println(
Strings.lenientFormat("aaa","c","b") //aaa [c, b]
);
System.out.println(
// 返回一个最小长度为5,以参数123为基准,不足的使用 c补充,
// 如果最小长度设置的小于基准123的长度,则返回123
Strings.padEnd("123",5,'c')
);
System.out.println(
Strings.padStart("777",6,'0')
);
// 复制多分
Strings.repeat("aaa",3);//aaaaaaaaa
Objects:
最常用的 是 equal()方法
com.google.common.base.Objects.equal("aa",null);
如果使用的jdk版本是 java8以上的,则使用java8提供的Objects最好,提供的方法也多