我想拆分一个字符串"ABC\DEF"
?我努力了
String str = "ABC\DEF";
String[] values1 = str.split("\\");
String[] values2 = str.split("\");
但似乎没有一个工作。请帮忙。
String.split() 需要一个正则表达式。您需要转义每个\
,因为它位于 java 字符串中(顺便说一下,您也应该转义String str = "ABC\DEF";
),并且您需要为正则表达式转义。最后,您将以这一行结束:
String[] values = str.split("\\\\");
将"\\\\"
是\\
字符串,正则表达式将解释为\
.
请注意,String.split
通过正则表达式拆分字符串。
在 RAW 正则表达式中指定为分隔符的一种正确方法1是:\
\\
由于\
是正则表达式中的特殊字符,因此您需要对其进行转义以指定文字\
.
将正则表达式放入字符串文字中,您需要再次转义,因为\
在字符串文字中也是转义字符。因此,您最终得到:
"\\\\"
所以你的代码应该是:
str.split("\\\\")
\
请注意,这会在字符串中的每个实例上拆分。
1其他方式(在 RAW 正则表达式中)是:
\x5C
\0134
\u005C
在字符串文字中(甚至比四重转义还要糟糕):
"\\x5C"
"\\0134"
"\\u005C"
使用它: String str = "ABC\\DEF"; String[] values1 = str.split("\\\\");
final String HAY = "_0_";
String str = "ABC\\DEF".replace("\\", HAY);
System.out.println(Arrays.asList(str.split(HAY)));