String里面带有双引号,去除双引号后转换成list
时间: 2024-03-21 22:03:45 浏览: 62
可以使用Java正则表达式和字符串的split()方法将带有双引号的String类型的字符串去除双引号后转换成List,具体实现代码如下:
```java
String str = "\"减摇鳍\",\"噪声\",\"噪声2\"";
List<String> strList = new ArrayList<>();
Matcher matcher = Pattern.compile("\"([^\"]*)\"").matcher(str);
while (matcher.find()) {
strList.add(matcher.group(1));
}
```
这里的正则表达式是"\"([^\"]*)\"",它可以匹配带有双引号的子字符串,并且将双引号去除。具体来说,这个正则表达式会匹配双引号,并且将双引号中间的内容作为一组匹配,使用matcher.group(1)可以获取到匹配结果中双引号中间的内容,也就是去除双引号后的字符串。
最终,将匹配结果添加到List中,就可以得到去除双引号后的字符串列表。
相关问题
String里面带有双引号转换成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,具体实现方法可以参考我之前的回答。
String转List<String>怎么才有双引号
包裹的字符串?
你可以使用 split() 方法将 String 分割成一个字符串数组,然后再将数组转换为 List,如下所示:
String str = "hello,world";
String[] strArr = str.split(",");
List<String> strList = Arrays.asList(strArr);
这样,双引号包裹的字符串就会被正确地保留在 List 中。
阅读全文