一个非常愚蠢的问题,我知道"和。是两个特殊字符,但为什么使用split()函数时会有区别?
所以这是代码
String.split("\"");
String.split("\\.");
它们都有效,但为什么只有一个" \"第一行代码和第二行代码?
编辑: 如果我这样做会发生什么
String.split("\\"");
结果是否与
相同 String.split("\"");
答案 0 :(得分:5)
在第一个示例中,您正在转义"
(这不是特殊的正则表达式字符,因此它与string.split(Character.toString('"'));
字面上相同) - 也就是说,您需要要转义"
以将"
放入String
- 您还可以写string.split("" + '"');
。在第二个示例中,您将转义.
(这是一个特殊的正则表达式字符)。因此,\
被转义,相当于Pattern.compile(".", Pattern.LITERAL).split(string);
答案 1 :(得分:2)
当你在Java中使用split函数时,你应该注意一些符号不仅仅意味着简单的字符,它还可能意味着正则表达式的特殊命令。
For string For regex
"\"" " <- noting special from regex point of view, will process all (")
"." . <- Yeh, special character, I will process all characters
"\\." \. <- noting special from regex point of view, will process all (.)
答案 2 :(得分:1)
此处已经回答The split() method in Java does not work on a dot (.)
java.lang.String.split
分割正则表达式,正则表达式中的.
表示&#34;任何字符&#34;。