1

我想拆分一个字符串"ABC\DEF"?我努力了

String str = "ABC\DEF";
String[] values1 = str.split("\\");
String[] values2 = str.split("\");

但似乎没有一个工作。请帮忙。

4

4 回答 4

2

String.split() 需要一个正则表达式。您需要转义每个\,因为它位于 java 字符串中(顺便说一下,您也应该转义String str = "ABC\DEF";),并且您需要为正则表达式转义。最后,您将以这一行结束:

String[] values = str.split("\\\\");

"\\\\"\\字符串,正则表达式将解释为\.

于 2013-04-25T05:17:47.610 回答
2

请注意,String.split通过正则表达式拆分字符串。

在 RAW 正则表达式中指定为分隔符的一种正确方法1是:\

\\

由于\是正则表达式中的特殊字符,因此您需要对其进行转义以指定文字\.

将正则表达式放入字符串文字中,您需要再次转义,因为\在字符串文字中也是转义字符。因此,您最终得到:

"\\\\"

所以你的代码应该是:

str.split("\\\\")

\请注意,这会在字符串中的每个实例上拆分。

脚注

1其他方式(在 RAW 正则表达式中)是:

\x5C
\0134
\u005C

在字符串文字中(甚至比四重转义还要糟糕):

"\\x5C"
"\\0134"
"\\u005C"
于 2013-04-25T05:20:20.457 回答
0

使用它: String str = "ABC\\DEF"; String[] values1 = str.split("\\\\");

于 2013-04-25T05:21:49.213 回答
-1
final String HAY = "_0_";
String str = "ABC\\DEF".replace("\\", HAY);
System.out.println(Arrays.asList(str.split(HAY)));
于 2013-04-25T05:29:17.637 回答