String里面带有双引号转换成list
时间: 2023-07-25 17:49:12 浏览: 77
数组和list相互转换
可以使用Java正则表达式和字符串的split()方法将String类型的字符串转换成List,具体实现代码如下:
```java
String str = "\"减摇鳍\",\"噪声\",\"噪声2\"";
List<String> strList = Arrays.asList(str.split(",(?=([^\"]*\"[^\"]*\")*[^\"]*$)"));
```
这里的split()方法使用了正则表达式作为分隔符,可以将带有双引号的字符串正确地切分成一个List。具体来说,这个正则表达式会匹配逗号,并且排除掉带有双引号的逗号。其中,"(?=([^\"]*\"[^\"]*\")*[^\"]*$)"这部分是正则表达式的前瞻断言,它的作用是判断当前逗号后面的内容中是否有偶数个双引号,如果有,就是一个带有双引号的字符串,不应该被切分。
最终,使用Arrays.asList()方法将切分后的结果转换为List。注意,Arrays.asList()方法返回的是一个固定大小的List,不能进行添加或删除操作。如果需要进行添加或删除操作,可以将其转换为可变的ArrayList,具体实现方法可以参考我之前的回答。
阅读全文