guava joiner主要用于字符串的拼接:传统的假如我们想要拼接一个list以某个分割符分割我们自己编程大概代码如下:
这段代码没什么好说的,比较简单。但是这只是针对list集合,可能还会针对数组等其他数据结构的字符串拼接。自己实现还是有些麻烦。为此guava为我们提供了一个joiner类来负责拼接。
例如上面的代码可以改写为:
一句代码即解决。
此外joiner还提供了两个方法分别是过滤null和将null替换为某个字符串。
MapJoiner的用法和Joiner类似,不过MapJoiner主要针对map的字符串拼接例:
public static String concatString(List<String> lists,String delimiter){
StringBuilder builder = new StringBuilder();
for(String s : lists){
if(s!=null){
builder.append(s).append(delimiter);
}
}
builder.setLength(builder.length()-delimiter.length());
return builder.toString();
}
这段代码没什么好说的,比较简单。但是这只是针对list集合,可能还会针对数组等其他数据结构的字符串拼接。自己实现还是有些麻烦。为此guava为我们提供了一个joiner类来负责拼接。
例如上面的代码可以改写为:
Joiner.on("|").join(lists);
一句代码即解决。
此外joiner还提供了两个方法分别是过滤null和将null替换为某个字符串。
Joiner.on("|").useForNull(" 没有").join(lists);
Joiner.on("|").skipNulls().join(lists);
MapJoiner的用法和Joiner类似,不过MapJoiner主要针对map的字符串拼接例:
Map<String,String> maps = Maps.newHashMap();
maps.put("id", "1");
maps.put("name", "2");
String ss= Joiner.on("&").withKeyValueSeparator("=").join(maps);