Java String split("|")方法调用无法正常工作

use*_*600 11 java string 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);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

该程序正在使用String str2正常工作,但它不能与String str1一起使用此程序中可能的流程是什么?

Jae*_*Lee 41

String#split()期待正则表达式.但是|正则表达式中的控制角色.因此,要使正则表达式解析器理解您的意思是文字|,您需要传递\|给正则表达式解析器.但它\是Java字符串文字中的控制字符.因此,要使Java编译器理解您要传递\|给正则表达式解析器,您需要传递"\\|"给该String#split()方法.


Ruc*_*era 19

使用

str1.split("\\|")
Run Code Online (Sandbox Code Playgroud)

代替

str1.split("|")
Run Code Online (Sandbox Code Playgroud)

你需要逃脱 |


tob*_*s_k 9

split期望一个正则表达式,因为它|是正则表达式中的特殊字符,所以你必须将其转义.试试str.split("\\|").例:

>>> Arrays.asList("This | is | My | Account | For | Java|".split("\\|"));
[This ,  is ,  My ,  Account ,  For ,  Java]
Run Code Online (Sandbox Code Playgroud)