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 str2一起正常工作,但它不能与String str1一起使用此程序中可能有哪些流程?
答案 0 :(得分:37)
String#split()
期望正则表达式作为第一个参数,|
是正则表达式中的控制字符。
要使正则表达式解析器理解您要按文字|
拆分,您需要将\|
传递给正则表达式解析器。但是\
是Java字符串文字中的控制字符。因此,为了使Java编译器了解您希望将\|
传递给正则表达式解析器,您需要将"\\|"
传递给String#split()
方法。
答案 1 :(得分:18)
使用
str1.split("\\|")
而不是
str1.split("|")
您需要转义|
答案 2 :(得分:9)
split
需要一个正则表达式,由于|
是正则表达式中的特殊字符,因此必须将其转义。试试str.split("\\|")
。例如:
>>> Arrays.asList("This | is | My | Account | For | Java|".split("\\|"));
[This , is , My , Account , For , Java]