我的字符串值为"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;
}
答案 0 :(得分:2)
您可以尝试在逗号上进行拆分,但使用负面的lookbehind声明逗号没有被反斜杠转义:
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