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

Cry*_*shy 2 java string split

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

所以这是代码

    String.split("\"");
    String.split("\\.");
Run Code Online (Sandbox Code Playgroud)

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

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

    String.split("\\"");
Run Code Online (Sandbox Code Playgroud)

结果是否相同

    String.split("\"");
Run Code Online (Sandbox Code Playgroud)

Ell*_*sch 5

在第一个例子,你逃脱"(这不是一个特殊的正则表达式字符,所以它的字面意思一样string.split(Character.toString('"'));) -也就是说,你需要躲避""一个String-你也可以写string.split("" + '"');.在第二个示例中,您正在转义.(这是一个特殊的正则表达式字符).因此\逃脱了,相当于Pattern.compile(".", Pattern.LITERAL).split(string);