看一段程序
String t = "a||b||c||d";
String[] temp = t.split("\\|\\|");
System.out.println(temp.length);
"\\|\\|" 是什么意思?有点蒙
java中\需要用\\来表示,这个你应该知道。而split()中传入的参数是什么呢?他并不是普通的字符串,split()要求传入的是正则表达式,而正则表达式也需要这个\作为转义符,所以在这里为\\。
现在回头再看上段程序,应该明白了:
\\会转义成反斜杠\,反斜杠\本身就是转义符,所有就成了“\|”,再进行转义就是|,所以\\|实际上是“|”。
在jdk doc中说明 :
public String[] split(String regex)
Splits this string around matches of the given regular expression.
参数regex是一个 regular-expression的匹配模式而不是一个简单的String,他对一些特殊的字符可能会出现你预想不到的结果。