使用split(“ |”)通过管道符号分割Java字符串

Java官方文档指出:

"boo:and:foo"例如,字符串使用这些表达式Regex Result产生以下结果:

{ "boo", "and", "foo" }"

这就是我需要它工作的方式。但是,如果我运行此命令:

public static void main(String[] args){

String test = "A|B|C||D";

String[] result = test.split("|");

for(String s : result){

System.out.println(">"+s+"<");

}

}

它打印:

><

>A<

>|<

>B<

>|<

>C<

>|<

>|<

>D<

这与我的预期相去甚远:

>A<

>B<

>C<

><

>D<

为什么会这样呢?

回答:

你需要

test.split("\\|");

split使用正则表达式,并且在regex中 |是表示OR运算符的元字符。你需要使用来转义该字符\(使用String编写,"\\"因为\它也是String文字中的元字符,并且需要另一个字符\来对其进行转义)。

你也可以使用

test.split(Pattern.quote("|"));

Pattern.quote创建代表的正则表达式的转义版本|。

以上是 使用split(“ |”)通过管道符号分割Java字符串 的全部内容, 来源链接: utcz.com/qa/431873.html

回到顶部