我的字符串格式为“test \ 00216243”。 我需要根据反斜杠'\'分割Java中的字符串。
My Program:
public class StringTest {
public static void main(String[] args) {
String taskOwner = "test\00216243";
String taskArray[] = taskOwner.split(Pattern.quote(System.getProperty("file.separator")));
System.out.println(taskArray[0]);
}
}
当我运行此程序时,我得到以下结果,但结果不是'test'。有什么帮助吗?
Result:
test16243
答案 0 :(得分:3)
添加
\
是正则表达式中的特殊字符,也是Java字符串文字中的特殊字符。如果你想在正则表达式中使用文字反斜杠,你必须将它加倍两次。
当您键入"\\"
时,这实际上是一个反斜杠(由于Java字符串中的特殊字符转义)。
正则表达式也使用反斜杠作为特殊字符,您需要使用另一个反斜杠来转义它。因此,最后,您需要将“\\”作为模式传递以匹配单个反斜杠。
public static void main(String[] args) {
String taskOwner = "test\\00216243";
String taskArray[] = taskOwner.split("\\\\");
System.out.println(taskArray[0]);
}
<强>输出强>
test
00216243
答案 1 :(得分:2)
\002
代表一个unicode角色。因此,我建议您根据字母或数字以外的字符拆分输入。
String string1 = "test\00216243";
String part[] = string1.split("[^a-z0-9]");
System.out.println(part[0]);
输出:
test
答案 2 :(得分:0)
字符串"test\00216243"
应替换为"test\\00216243"
由于\
代表转义序列,因此您需要在字符串中使用\\
来表示\
试试这个
public static void main(String[] args) {
String taskOwner = "test\\00216243";
String myarray[] = taskOwner.split("\\\\");
System.out.println(myarray[0]+" "+myarray[1]);
}
<强>输出强>
test 00216243
<强>参考:强>