Java Can';t拆分包含“的文本”|&引用;串

Java Can';t拆分包含“的文本”|&引用;串,java,string,split,Java,String,Split,我想知道为什么我不能拆分包含|作为字符串分隔符的文本。当我使用逗号或类似符号时,拆分工作正常 这是一个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";

我想知道为什么我不能拆分包含|作为字符串分隔符的文本。当我使用逗号或类似符号时,拆分工作正常

这是一个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);
    }    
}
你知道为什么它不能与“|”一起使用吗?

既然
split(stringregex)
接受一个
regex
并且|是一个元字符,你需要对它进行转义

String[] splittedText1 = splittedText1.split("\\|");
或者您可以简单地使用类

正则表达式的编译表示

由于
split(stringregex)
接受
regex
,并且|是元字符,因此需要对其进行转义

String[] splittedText1 = splittedText1.split("\\|");
或者您可以简单地使用类

正则表达式的编译表示


因为分割模式实际上是一个正则表达式。您需要转义
|
,因为它在正则表达式的上下文中具有特殊意义(它标记了一个替代项):


因为分割模式实际上是一个正则表达式。您需要转义
|
,因为它在正则表达式的上下文中具有特殊意义(它标记了一个替代项):


如果你想给你的朋友留下深刻印象,可以使用
Pattern#quote
String[]splittedText1=text1.split(Pattern.quote(“|”)@marounnaroun我给你留下了深刻印象:D@sᴜʀᴇsʜᴀᴛᴛᴀ 总是令人印象深刻的:-)。谢谢如果你想给你的朋友留下深刻印象,可以使用
Pattern#quote
String[]splittedText1=text1.split(Pattern.quote(“|”)@marounnaroun我给你留下了深刻印象:D@sᴜʀᴇsʜᴀᴛᴛᴀ 总是令人印象深刻的:-)。谢谢
String [] splittedText1 = text1.split("\\|");