java逗号分隔String字符串及数组、集合相互转换
1. 准备一个逗号分割字符串
String str = "小张,小王,小李,小赵";
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_小张,小王,小李,小赵_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方法,这种方式转换的字符串首尾加大括号 输出示例:{小张,小王,小李,小赵} ArrayUtils.toString(arr, ",");
补充:将一个Java字符串按逗号分割成一个列表(List)
可以使用Java的split()
方法将字符串分割成字符串数组,然后将数组转换为列表。以下是一个示例代码:
import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { String str = "apple,banana,orange"; List<String> list = Arrays.asList(str.split(",")); System.out.println(list); } }
输出
[apple, banana, orange]
在上述代码中,我们使用split(",")
方法将字符串str
按逗号分割成一个字符串数组,然后使用Arrays.asList()
方法将数组转换为列表。最后,我们打印输出列表的内容。
请注意,Arrays.asList()
方法返回的是一个固定大小的列表,不支持对其进行添加或删除操作。如果需要进行修改操作,可以将其转换为ArrayList
,如下所示:
import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { String str = "apple,banana,orange"; List<String> list = new ArrayList<>(Arrays.asList(str.split(","))); System.out.println(list); } }
总结
到此这篇关于java逗号分隔String字符串及数组、集合相互转换的文章就介绍到这了,更多相关java逗号分隔String字符串内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
一篇文章带你了解java Object根类中关于toString,equals的方法
这篇文章主要介绍了Object类toString()和equals()方法使用解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2021-09-09IDEA项目使用SpringBoot+MyBatis-Plus的方法
这篇文章主要介绍了IDEA项目使用SpringBoot+MyBatis-Plus的方法,本文分步骤通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-10-10基于Spring中的事务@Transactional细节与易错点、幻读
这篇文章主要介绍了基于Spring中的事务@Transactional细节与易错点、幻读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-11-11
最新评论