Java反斜杠拆分字符串

时间:2015-03-09 02:33:40

标签: java regex

我的字符串格式为“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

3 个答案:

答案 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

<强>参考:

How to split a java string at backslash