小编典典

使用 split("|") 通过管道符号拆分 Java 字符串

all

Java 官方文档指出:

"boo:and:foo"例如, string使用这些表达式 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<

为什么会这样?


阅读 55

收藏
2022-06-28

共1个答案

小编典典

你需要

test.split("\\|");

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

你也可以使用

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

并让我们Pattern.quote创建代表 . 的正则表达式的转义版本|

2022-06-28