逗号分隔字符串,数组,集合,相互转换

1. 逗号分割的字符串

String str = "Java,C,C++,C#";

2. 逗号分割字符串转换为集合

注意:转换为集合之前会先转换为数组

//第一种:先用split将字符串按逗号分割为数组,再用Arrays.asList将数组转换为集合
List<String> strList1 = Arrays.asList(str.split(","));**
//第二种:使用stream流转换String集合
List<String> strList2 = Arrays.stream(str.split(",")).collect(Collectors.toList());**
//第三种:使用stream转换int集合(这种适用字符串是逗号分隔的类型为int类型)
List<Integer> intList = Arrays.stream(str.split(",")).map(Integer::parseInt).collect(Collectors.toList());
//第四种:使用Guava的SplitterString
List<String> strList3= Splitter.on(",").trimResults().splitToList(str);
//第五种:使用Apache Commons的StringUtils(只用到了他的split)
List<String> strList4= Arrays.asList(StringUtils.split(str,","));
//第六种:使用Spring Framework的StringUtils
List<String> strList5 =Arrays.asList(StringUtils.commaDelimitedListToStringArray(str);

3. 集合转换为逗号分隔的字符串

//第一种:String.join(), JDK1.8+
str = String.join(",", strList1);
//第二种:org.apache.commons.lang3.StringUtils. toArray():集合转换为数组
str = StringUtils.join(strList1.toArray(), ",");
//第三种:需要引入hutool工具包
str = Joiner.on(",").join(strList1);
// 第四种:StringJoiner, JDK1.8+ 输出示例:START_小张,小王,小李,小赵_END
StringJoiner sj = new StringJoiner(",");
strList1.forEach(e -> sj.add(String.valueOf(e)));
//在上面已经处理为逗号拼接的字符串,下面为补充
//在连接之前操作字符串, 拼接前缀和后缀
StringJoiner sj2 = new StringJoiner(",", "START_", "_END");
strList1.forEach(e -> sj2.add(String.valueOf(e)));
//第五种:Stream, Collectors.joining(), JDK1.8+
str = strList1.stream().collect(Collectors.joining(","));
//在连接之前操作字符串, 拼接前缀和后缀. 输出示例:START_Java,C,小C++,C#_END
str = strList1.stream().map(e -> {
    if (e != null) return e.toUpperCase();
    else return "null";
}).collect(Collectors.joining(",", "START_", "_END"));
//第六种:使用Spring Framework的StringUtils
str = StringUtils.collectionToDelimitedString(strList1,",");

4. 数组转逗号分隔字符串

String [] arr = (String[])strList1.toArray();
//第一种:使用StringUtils的join方法
str = StringUtils.join(arr, ",");
//第二种:使用ArrayUtils的toString方法,这种方式转换的字符串首尾加大括号 输出示例:{Java,C,C++,C#}
ArrayUtils.toString(arr, ",");
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

故事的小黄花up

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值