Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.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 String.Split-意外行为_Java_String - Fatal编程技术网

Java String.Split-意外行为

Java String.Split-意外行为,java,string,Java,String,我正在尝试如下拆分一个字符串 String string = "mike|ricki" 如果我执行以下string.split(“|”)操作,我希望得到一个由两个元素组成的数组,“mike”和“ricki”。相反,我得到了以下信息 [,m,i,k,e,|,r,i,c,k,i] 我在这里做错了什么吗?是的。管道字符|是正则表达式中的特殊字符。您必须使用\对其进行转义。转义字符串应该是\\\\\,但在Java中,反斜杠\是文本字符串中转义的特殊字符,因此必须对其进行双重转义并使用\\\\\: St

我正在尝试如下拆分一个字符串

String string = "mike|ricki"
如果我执行以下
string.split(“|”)
操作,我希望得到一个由两个元素组成的数组,
“mike”
“ricki”
。相反,我得到了以下信息

[,m,i,k,e,|,r,i,c,k,i]


我在这里做错了什么吗?

是的。管道字符
|
是正则表达式中的特殊字符。您必须使用
\
对其进行转义。转义字符串应该是
\\\\\
,但在Java中,反斜杠
\
是文本字符串中转义的特殊字符,因此必须对其进行双重转义并使用
\\\\\

String[] names = string.split("\\|");
System.out.println(Arrays.toString(names));

对。管道字符
|
是正则表达式中的特殊字符。您必须使用
\
对其进行转义。转义字符串应该是
\\\\\
,但在Java中,反斜杠
\
是文本字符串中转义的特殊字符,因此必须对其进行双重转义并使用
\\\\\

String[] names = string.split("\\|");
System.out.println(Arrays.toString(names));
如果您阅读Java文档,它会说它可以接收正则表达式作为输入

管道字符
\
是正则表达式中的一个特殊字符,因此如果要将其用作文本,则必须像
\\\\\
那样对其进行转义

因此,您的代码必须是:

String[] splitted = string.split("\\|");
编辑:更正了示例代码。

如果您阅读Java文档,它会说它可以接收正则表达式作为输入

管道字符
\
是正则表达式中的一个特殊字符,因此如果要将其用作文本,则必须像
\\\\\
那样对其进行转义

因此,您的代码必须是:

String[] splitted = string.split("\\|");

编辑:更正了示例代码。

String.split采用正则表达式。管道字符在正则表达式中有特殊含义,因此它与您期望的不匹配

请尝试使用
String.split(\\\\”)


反斜杠告诉正则表达式将管道视为文字字符。

String.split采用正则表达式。管道字符在正则表达式中有特殊含义,因此它与您期望的不匹配

请尝试使用
String.split(\\\\”)


反斜杠告诉regex将管道视为文字字符。

-1:在您在答案末尾添加了非常奇怪的代码行之前,您的答案是正确的=\。您需要转义正则表达式,而不是应用正则表达式的字符串。您不需要更改原始字符串,只需要在拆分中匹配正则表达式!1:你的答案是对的,直到你在答案的末尾加上那行奇怪的代码=\。您需要转义正则表达式,而不是应用正则表达式的字符串。您不需要更改原始字符串,只需要在拆分中匹配正则表达式!我会改正的