我有"Hello,World\\,,1,2,3"
的字符串值,我需要用,
的分隔符将其拆分。但是,该方法还需要在拆分时识别escpace字符,最终输出需要是一个数组,例如
[Hello, World,, 1, 2, 3]
我有一种方法可以执行此操作,但是它无法识别转义字符。其提供如下,
public static String[] tokenize1(String record, char delimiter) {
String delim = String.valueOf(delimiter);
String[] arr = record.split(delim);
return arr;
}
最佳答案
您可以尝试对逗号进行拆分,但后面要留一个负数,以断定逗号尚未被反斜杠转义:
String input = "Hello,World\\,,1,2,3";
String[] parts = input.split("(?<!\\\\),");
for (String part : parts) {
// uncomment to also remove backslash
// part = part.replaceAll("\\\\,", ",");
System.out.println(part);
}
输出:
Hello
World\,
1
2
3
Demo