StringJoiner是1.8版本的新加String辅助类
用StringBulider做分隔很繁琐 可以使用StringJoiner
使用StringBulider
StringBuilder sb = new StringBulider();
IntStream.range(1,10).forEach(i->{
sb.append(i+"");
if(i<10) sb.append(",");
})
这样的操作相对繁琐
使用StringJoiner
StringJoiner sj = new StringJoiner(",");
IntStream.range(1.10).forEach(i->sj.add(i+""))
其它使用较少的功能
setEmptyValue() 默认情况下是前缀加后缀 用户可自定义emptyValue
merge(StringJoiner other) 合并另外一个joiner
length 当前长度 为空emptyValue的长度
其它使用
- 维护一个list,toString的时候join一下就好了,优势:实现方便 缺点:list太浪费空间(扩容时按系数扩容的)
- 在StringBuilder基础上改造(jdl实现方法就是以组合的形式增强的StringBuilder)
总结
- 基于StringBuilder实现,add时酒把prefix和分隔符给加上,,suffix永远都不加,直到toString和length调用时才加入计算。这样带来的merge操作实现的极大便利性。
- emptyValue待深入学习
- Objects这个工具方法是返回的校验的值本身。