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

开发中常用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<>();
}
posted @ 2024-05-31 10:38  Cloong  阅读(4808)  评论(0)    收藏  举报