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此程序中可能的流是什么?
发布于 2014-07-16 16:30:12
String#split()
需要一个正则表达式作为第一个参数,而|
是正则表达式中的控制字符。
要使正则表达式解析器理解您的意思是按文字|
拆分,需要将\|
传递给正则表达式解析器。但是\
是Java string文字中的一个控制字符。因此,要使Java编译器理解您想要将\|
传递给正则表达式解析器,需要将"\\|"
传递给String#split()
方法。
发布于 2014-07-16 16:30:25
使用
str1.split("\\|")
而不是
str1.split("|")
你需要避开|
发布于 2014-07-16 16:30:10
split
需要一个正则表达式,由于|
是正则表达式中的一个特殊字符,因此您必须对其进行转义。试试str.split("\\|")
。示例:
>>> Arrays.asList("This | is | My | Account | For | Java|".split("\\|"));
[This , is , My , Account , For , Java]
https://stackoverflow.com/questions/24775817
复制相似问题