无法拆分包含"|"的文本 在String中

Ram*_*ses 1 java string split

我想知道为什么我不能拆分包含|的文本 作为String中的分隔符.当我使用逗号等时,分裂工作正常.

这是一个SSCE

package tests;

public class Tests {        
    public static void main(String[] args) {

        String text1="one|two|three|four|five";
        String text2="one,two,three,four,five";

        String [] splittedText1 = text1.split("|");
        String [] splittedText2 = text2.split(",");

        for(String elem : splittedText1) System.out.println("text1="+elem);
        for(String elem : splittedText2) System.out.println("text2="+elem);
    }    
}
Run Code Online (Sandbox Code Playgroud)

任何想法为什么它不适用于"|" ??

Sur*_*tta 5

由于 split(String regex)需要regex和| 是一个元字符,你需要逃脱它.

String[] splittedText1 = splittedText1.split("\\|");
Run Code Online (Sandbox Code Playgroud)

或者你可以简单地使用Pattern课程

正则表达式的编译表示.

String[] splittedText1 = splittedText1.split(Pattern.quote("|"));
Run Code Online (Sandbox Code Playgroud)