首页 > 编程语言 >Java字符串逗号分隔转换List集合

Java字符串逗号分隔转换List集合

时间:2024-05-31 10:44:55浏览次数:29  
标签:Java String List 逗号 listIds split str new

开发中常用String字符串接收多个用逗号或分号分隔的id,之后再将字符串处理成List<String>集合来方便使用数据。

常用方式

1.For循环添加

String str = "123,456,789";
List<String> listIds = new ArrayList<>();
String[] split = str.split(",");
for (String s : split) {
    listIds.add(s);
}

2.asList添加

Arrays类中的asList方法可以直接将数组转成List集合

String str = "123,456,789";
List<String> listIds = new ArrayList<>(Arrays.asList(appNos.split(",")));

这个new ArrayList<>写不写都可以,如果加上代表这个list后面可以继续add添加元素,如果不加那初始化集合后就不能再添加元素了。

注意!

第二种方式虽然非常方便,但是当str是一个空字符串的时候List集合却不是空的,原因是split方法会将空串转成一个空数组,然后asList再将空数组转成集合中的空元素,也就是这个list集合是有值的,但是这个值是空。这样就非常容易导致后续使用集合产生空指针异常。

解决

需要在时候Arrays.asList时前进行判空处理

String str = "123,456,789";
List<String> listIds = new ArrayList<>();
if (!StringUtil.isEmpty(str)) {
    listIds = new ArrayList<>(Arrays.asList(str.split(",")));
} else {
    listIds = new ArrayList<>();
}

标签:Java,String,List,逗号,listIds,split,str,new
From: https://www.cnblogs.com/Cloong/p/18060246

相关文章

  • KeyExpirationEventMessageListener监听器的使用
    KeyExpirationEventMessageListener监听器的使用KeyExpirationEventMessageListener是SpringDataRedis提供的一个类,用于监听Redis中键过期事件。当Redis中的键到达过期时间时,Redis会发出一个过期事件,该类可以用来捕捉和处理这些事件。以下是KeyExpirationEvent......
  • Java构造方法的作业题
    基于面向对象的构造方法的调用,产生有参和无参的构造方法,使用private去保护类内访问packagecom.imooc.day01;/***@authorwangChen*@date2024/5/30*@Description*/publicclassHomeWork01{privateStringname;privateintdata;privatedou......
  • 探索Java
    第一站:Java绿——基础语法的清新之源关键词:类、对象、封装、继承、多态Java的旅程始于一片生机盎然的绿色,正如其标志性的咖啡杯图标,象征着活力与基础。在这里,我们学习Java的基础语法,理解面向对象编程的核心概念——类与对象,以及封装、继承、多态的奥秘。就像是在春天播下知识......
  • 面经-Java,Linux,Mysql,网络
    状态码2xx:成功类3xx:重定向4xx:客户端错误5xx:服务器错误404:未找到网页400:请求语法错误500:服务器错误503:服务器停机200:成功post和get的区别get多用于获取服务端数据,post多用于向服务端推送数据。get的参数多拼接在url中,post的参数放在请求体中。故post的安全系数高......
  • 基于javaweb jsp ssm的停车场管理系统vue(源码+lw+部署文档+讲解等)
    前言......
  • [工具] png图片打包plist工具,手把手教你使用pngPackerGUI_V2.0
    png图片打包plist工具,手把手教你使用pngPackerGUI_V2.0此软件是在pngpacker_V1.1软件基础之后,开发的界面化操作软件,方便不太懂命令行的小白快捷上手使用。 下载地址请关注底部微信公众号联系客服1.下载并解压缩软件,得到如下目录,双击打开pngPackerGUI.exe 2.打开pngPac......
  • 基于javaweb jsp ssm的图书馆图书借阅管理系统(源码+lw+部署文档+讲解等)
    前言......
  • 基于javaweb jsp ssm的网上图书购物销售_旧书回收vue(源码+lw+部署文档+讲解等)
    前言......
  • 关于《Java并发编程之线程池十八问》的补充内容
    一、写在开头在上一篇文章我们写《Java并发编程之线程池十八问》的时候,鉴于当时的篇幅已经过长,很多内容就没有扩展了,在这篇文章里对一些关键知识点进行对比补充。二、RunnablevsCallable在创建线程的时候,一般会选用Runnable和Callable两种方式。【源码对比】Runnable接......
  • **java反射与方法**
    问题导入假如要调用一个类的所有方法,而这个类有1000个方法,该怎么办???解决方案:1.类名.方法名(太麻烦了) 2.使用java中的反射机制(推荐使用getDeclaredMethod()方法)一、反射机制概念在java中的反射机制是指在运行状态中,对于任意一个类都能够知道这个类所有的属性和方法,并且对......