也是无意中,发现了这个方法,于是看了一下源码,这是jdk 1.8新增的一个方法。
首先,它是个啥?
源码注释翻译:用于构造由分隔符分隔的字符序列,并可选择性地从提供的前缀开始和以提供的后缀结尾。省的我们开发人员再次通过StringBuffer或者StingBuilder拼接。
其次它是一个被final修饰的类,使用方法源码中也有描述:
StringJoiner sj = new StringJoiner(":", "[", "]");
* sj.add("George").add("Sally").add("Fred");
* String desiredString = sj.toString();
输出:[George:Sally:Fred]
List<Integer> numbers = Arrays.asList(1, 2, 3, 4);
* String commaSeparatedNumbers = numbers.stream()
* .map(i -> i.toString())
* .collect(Collectors.joining(", "));
来看一下,方法的几个参数含义:
private final String prefix; //前缀
private final String delimiter; //间隔符
private final String suffix;//后缀
private StringBuilder value;//值
private String emptyValue;//空值
实际上是运用了StringBuilder的一个拼接字符串的封装处理。减少开发人员再次通过StringBuffer或者StingBuilder拼接。