Java官方文档指出:
"boo:and:foo"例如,字符串使用这些表达式生成以下结果Regex结果:
{ "boo", "and", "foo" }"
Run Code Online (Sandbox Code Playgroud)
这就是我需要它工作的方式.但是,如果我运行这个:
public static void main(String[] args){
String test = "A|B|C||D";
String[] result = test.split("|");
for(String s : result){
System.out.println(">"+s+"<");
}
}
Run Code Online (Sandbox Code Playgroud)
它打印:
><
>A<
>|<
>B<
>|<
>C<
>|<
>|<
>D<
Run Code Online (Sandbox Code Playgroud)
这远非我所期望的:
>A<
>B<
>C<
><
>D<
Run Code Online (Sandbox Code Playgroud)
为什么会这样?
我有以下数据:
1||1||Abdul-Jabbar||Karim||1996||1974
Run Code Online (Sandbox Code Playgroud)
我想划分令牌.
这里的分隔符是"||".
我的分隔符设置器是:
public void setDelimiter(String delimiter) {
char[] c = delimiter.toCharArray();
this.delimiter = "\"" + "\\" + c[0] + "\\" + c[1] + "\"";
System.out.println("Delimiter string is: " + this.delimiter);
}
Run Code Online (Sandbox Code Playgroud)
然而,
String[] tokens = line.split(delimiter);
Run Code Online (Sandbox Code Playgroud)
没有给出所需的结果.