开发中常用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