Java8——StringJoiner类

介绍:

  • StringJoiner是Java8新出的一个类,用于构造由分隔符分隔的字符序列,并可选择性地从提供的前缀开始和以提供的后缀结尾。

 构造方法:

StringJoiner joiner = new StringJoiner(",");              //分隔符

StringJoiner joiner1 = new StringJoiner(",", "[", "]");   //分隔符,前缀,后缀

 方法:

  • length() 长度,如设置了前缀和后缀,则算入长度中 
StringJoiner joiner = new StringJoiner(",");
StringJoiner joiner1 = new StringJoiner(",", "[{", "}]");

int length = joiner.length();		// 结果为0
int length1 = joiner1.length();	    // 结果为4

  • add( CharSequence newElement ) 添加元素
StringJoiner joiner = new StringJoiner(",");
StringJoiner joiner1 = new StringJoiner(",", "[{", "}]");

joiner.add("aa");
joiner.add("bb");

joiner1.add("cc");
joiner1.add("dd");

System.out.println(joiner.toString());		// aa,bb
System.out.println(joiner1.toString());	    // [{cc,dd}]  此时joiner1.length()为9

  • toString() 获得对象的字符串形式
StringJoiner joiner = new StringJoiner(",");
StringJoiner joiner1 = new StringJoiner(",", "[{", "}]");

joiner.add("aa");
joiner.add("bb");

joiner1.add("cc");
joiner1.add("dd");

System.out.println(joiner.toString());		// aa,bb
System.out.println(joiner1.toString());	    // [{cc,dd}]

  • setEmptyValue( CharSequence emptyValue ) 设置默认值,即使设置了前缀后缀,输出后仍不带前后缀
StringJoiner joiner = new StringJoiner(",");
StringJoiner joiner1 = new StringJoiner(",", "[{", "}]");

joiner.setEmptyValue("abc");
joiner1.setEmptyValue("def");

System.out.println(joiner.toString());	    //结果 abc
System.out.println(joiner1.toString());	    //结果 def

  • merge( StringJoiner other ) 2个对象进行组合,被组合的对象之间的分隔符仍然是被组合对象原有的分隔符,不会被替换成组合对象的分隔符
StringJoiner joiner = new StringJoiner(",","{","}");
StringJoiner joiner1 = new StringJoiner("-", "[", "]");

joiner.add("aa");
joiner.add("bb");

joiner1.add("cc");
joiner1.add("dd");

joiner.merge(joiner1);

System.out.println(joiner.toString());		//结果 {aa,bb,cc-dd}
System.out.println(joiner1.toString());	    //结果 [cc-dd]

利用Stream API: 

List<String> rgbList = Arrays.asList("Red", "Green", "Blue");

String collect = rgbList.stream().map(color -> color.toString()).collect(Collectors.joining("&"));

System.out.println(collect);		//结果 Red&Green&Blue

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值