猿问

将Java字符串拆分为管道符号,使用Split(“AC.26”)

将Java字符串拆分为管道符号,使用Split(“AC.26”)

Java官方文档指出:

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

{ "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<

为什么会发生这种事?


杨__羊羊
浏览 843回答 3
3回答

眼眸繁星

你需要test.split("\\|");split使用正则表达式和雷吉&nbsp;|是一个元字符,表示OR接线员。您需要使用\(用字符串写成"\\"自\也是字符串文本中的元字符,并需要另一个元字符。\为了逃避它)。您也可以使用test.split(Pattern.quote("|"));然后让Pattern.quote创建regex的转义版本,表示|.

慕容森

使用以下代码:public&nbsp;static&nbsp;void&nbsp;main(String[]&nbsp;args)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;test&nbsp;=&nbsp;"A|B|C||D"; &nbsp;&nbsp;&nbsp;&nbsp;String[]&nbsp;result&nbsp;=&nbsp;test.split("\\|"); &nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(String&nbsp;s&nbsp;:&nbsp;result)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(">"&nbsp;+&nbsp;s&nbsp;+&nbsp;"<"); &nbsp;&nbsp;&nbsp;&nbsp;}}
随时随地看视频慕课网APP
我要回答