按句点分隔字符串和java中的引号

时间:2017-08-30 03:11:39

标签: java string split

一个非常愚蠢的问题,我知道"和。是两个特殊字符,但为什么使用split()函数时会有区别?

所以这是代码

    String.split("\"");
    String.split("\\.");

它们都有效,但为什么只有一个" \"第一行代码和第二行代码?

编辑: 如果我这样做会发生什么

    String.split("\\"");

结果是否与

相同
    String.split("\"");

3 个答案:

答案 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;。