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);
}