如何根据“\\”或“\”拆分字符串?

时间:2013-04-25 05:10:17

标签: java string

我想拆分字符串"ABC\DEF"? 我试过了

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

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

4 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:2)

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

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

\\

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

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

"\\\\"

所以你的代码应该是:

str.split("\\\\")

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

脚注

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

\x5C
\0134
\u005C

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

"\\x5C"
"\\0134"
"\\u005C"

答案 2 :(得分:0)

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

答案 3 :(得分:-1)

final String HAY = "_0_";
String str = "ABC\\DEF".replace("\\", HAY);
System.out.println(Arrays.asList(str.split(HAY)));