Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中按句点和引号拆分字符串_Java_String_Split - Fatal编程技术网

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

java中按句点和引号拆分字符串,java,string,split,Java,String,Split,一个非常愚蠢的问题,我知道“和.都是特殊字符,但为什么在使用split()函数时会有区别呢 这是代码 String.split("\""); String.split("\\."); 它们都可以工作,但为什么第一行代码中只有一个“\”,第二行代码中只有两个“\ 编辑: 如果我这样做会发生什么 String.split("\\""); 结果会和你的一样吗 String.split("\""); 在第一个示例中,您转义的是“(这不是一个特殊的正则表达式字符,因此

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

这是代码

    String.split("\"");
    String.split("\\.");
它们都可以工作,但为什么第一行代码中只有一个“\”,第二行代码中只有两个“\

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

    String.split("\\"");
结果会和你的一样吗

    String.split("\"");

在第一个示例中,您转义的是
(这不是一个特殊的正则表达式字符,因此它与
string.split(character.toString(“”);
)-也就是说,您需要转义
以将
放入
字符串中,您也可以编写
string.split(“+”)。在第二个示例中,您正在转义
(这是一个特殊的正则表达式字符)。因此,
\
被转义,并等价于
Pattern.compile(“.”,Pattern.LITERAL).split(string)

已在此处回答


java.lang.String.split
在正则表达式上拆分,正则表达式中的
表示“任何字符”。

在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 (.)
正则表达式字符串的


“\”“我知道”和.”都是特殊字符:不,至少不在同一上下文中。
在Java的字符串文字语法中是特殊的,但在正则表达式中没有特殊之处<代码>
在正则表达式方面是特殊的,但在Java的字符串文本语法中不是。只需打印出这两个字符串,您就可以简单地了解其含义:第一行中的参数长度为1(唯一的字符为),第二行中的参数长度为2(第一个字符为\而第二个字符为句点)。正则表达式匹配器需要\位于字符串中,这样它就不会将句点视为特殊句点。