Java字符串拆分(";&124quot;)方法调用工作不正常

Java字符串拆分(";&124quot;)方法调用工作不正常,java,string,split,Java,String,Split,该程序正在使用字符串str2正常工作,但没有使用字符串str1。该程序中可能的流是什么?需要一个正则表达式,并且由于是正则表达式中的特殊字符,因此必须对其进行转义。尝试str.split(\\\\;”)。例如: public class SplitStr { public static void main(String []args) { String str1 = "This | is | My | Account | For | Java|"; St

该程序正在使用字符串str2正常工作,但没有使用字符串str1。该程序中可能的流是什么?

需要一个正则表达式,并且由于
是正则表达式中的特殊字符,因此必须对其进行转义。尝试
str.split(\\\\;”)
。例如:

public class SplitStr {

    public static void main(String []args) {
        String str1 = "This | is | My | Account | For | Java|";
        String str2 = "This / is / My / Account / For / Java/";
       // String[] arr = str.split("|");

        for(String item : str1.split("|")) {
            System.out.print(item);
        }
    }
}
String#split()
要求正则表达式作为第一个参数,
|
是正则表达式中的控制字符

要使正则表达式解析器理解您的意思是按文本
\
拆分,您需要将
\\\
传递给正则表达式解析器。但是
\
是Java字符串文本中的控制字符。因此,要使Java编译器理解您想要将
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

>>> Arrays.asList("This | is | My | Account | For | Java|".split("\\|"));
[This ,  is ,  My ,  Account ,  For ,  Java]
而不是

str1.split("\\|")

你需要逃避你不工作是什么意思?请在两种情况下都显示输出。您是在str上调用它,而不是在str1上调用它。就我个人而言,我很惊讶这个汇编。很好的解释和深刻的细节+1.
str1.split("|")