使用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