guava Joiner以及MapJoiner的用法

guava joiner主要用于字符串的拼接:传统的假如我们想要拼接一个list以某个分割符分割我们自己编程大概代码如下:

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

猜你喜欢

转载自chen-sai-201607223902.iteye.com/blog/2366863