java逗号分隔String字符串及数组、集合相互转换

 更新时间:2024年02月17日 10:12:51   作者:菜鸟笔记本  
我们在日常开发时会经常遇到将一个字符串按照逗号进行分割,这篇文章主要给大家介绍了关于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字符串内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • jdk中String类设计成final的原由

    jdk中String类设计成final的原由

    为什么jdk中把 String 类设计成final,主要是为了“ 效率 ”和“安全性”的缘故,若 String 允许被继承, 由于它的高度被使用率, 可能会降低程序的性能,所以String被定义成final,需要了解的朋友可以参考下
    2013-01-01
  • Java基于JDK 1.8的LinkedList源码详析

    Java基于JDK 1.8的LinkedList源码详析

    这篇文章主要给大家介绍了关于Java基于JDK 1.8的LinkedList源码的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-11-11
  • Java语言简介(动力节点Java学院整理)

    Java语言简介(动力节点Java学院整理)

    Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征,下面通过本文给大家分享java语言的简介,感兴趣的朋友一起看看吧
    2017-03-03
  • 关于spring web-mvc衍生注解

    关于spring web-mvc衍生注解

    这篇文章主要介绍了关于spring web-mvc衍生注解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • SpringMVC 方法四种类型返回值总结(你用过几种)

    SpringMVC 方法四种类型返回值总结(你用过几种)

    这篇文章主要介绍了SpringMVC 方法四种类型返回值总结(你用过几种),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • Java中Boolean和boolean的区别详析

    Java中Boolean和boolean的区别详析

    boolean是基本数据类型Boolean是它的封装类,和其他类一样,有属性有方法,可以new,下面这篇文章主要给大家介绍了关于Java中Boolean和boolean区别的相关资料,需要的朋友可以参考下
    2022-07-07
  • JAVA构造方法/构造器以及this使用方式

    JAVA构造方法/构造器以及this使用方式

    这篇文章主要介绍了JAVA构造方法/构造器以及this使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • SpringBoot Redis实现接口幂等性校验方法详细讲解

    SpringBoot Redis实现接口幂等性校验方法详细讲解

    这篇文章主要介绍了SpringBoot Redis实现接口幂等性校验方法,近期一个老项目出现了接口幂等性校验问题,前端加了按钮置灰,依然被人拉着接口参数一顿输出,还是重复调用了接口,通过复制粘贴,完成了后端接口幂等性调用校验
    2022-11-11
  • spring boot如何指定启动端口

    spring boot如何指定启动端口

    这篇文章主要介绍了spring boot如何指定启动端口,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • java 多态性详解及简单实例

    java 多态性详解及简单实例

    这篇文章主要介绍了java 多态性详解及简单实例的相关资料,需要的朋友可以参考下
    2017-02-02

最新评论