java 我有一个字符串 "'a,b',c,v,d,,",怎么将他分割成字符串数组{"a,b","c","v","d","",""},而不是{"a","b","c","v","d","",""}
时间: 2023-08-21 21:05:29 浏览: 76
如果你想将字符串 "'a,b',c,v,d,," 分割成字符串数组 {"a,b", "c", "v", "d", "", ""},可以使用正则表达式来处理。以下是一个示例代码:
```java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
String string = "'a,b',c,v,d,,";
List<String> resultList = new ArrayList<>();
Pattern pattern = Pattern.compile("'(.*?)'|([^,]+)|,");
Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
if (matcher.group(1) != null) {
resultList.add(matcher.group(1)); // 将引号内的部分加入结果列表
} else if (matcher.group(2) != null) {
resultList.add(matcher.group(2)); // 将非引号部分加入结果列表
} else {
resultList.add(""); // 处理连续的逗号,将空字符串加入结果列表
}
}
String[] array = resultList.toArray(new String[0]);
System.out.println(Arrays.toString(array));
```
这将输出:["a,b", "c", "v", "d", "", ""]。在这个示例中,我们使用正则表达式来匹配引号内的部分、非引号部分以及连续的逗号,并将它们添加到结果列表中。希望这对你有所帮助!如果你还有其他问题,请随时向我提问。
阅读全文