Java 无法对带有^(插入符号)符号的字符串使用String.split

Java 无法对带有^(插入符号)符号的字符串使用String.split,java,regex,string,split,Java,Regex,String,Split,我有一个字符串218~2~4~6^219~1~3~3^218~5~2~2^217~10~3~8^,我想使用带^的字符拆分字符串。我试过这样做 String mainString = "218~2~4~6^219~1~3~3^218~5~2~2^217~10~3~8^"; String[] tokens = mainString.split("^"); for (String stri: tokens){ System.out.println("\nString tokens:

我有一个字符串218~2~4~6^219~1~3~3^218~5~2~2^217~10~3~8^,我想使用带^的字符拆分字符串。我试过这样做

String mainString = "218~2~4~6^219~1~3~3^218~5~2~2^217~10~3~8^";

String[] tokens = mainString.split("^");

for (String stri: tokens){
        System.out.println("\nString tokens: " + stri);
    }
但是它不起作用。。请帮助我拆分字符串

因为它是正则表达式中的一个特殊字符(与字符串开头匹配),所以在
前面使用
反斜杠(\)
。在前面添加
反斜杠(\)
后,它将
^
视为一个文本,您需要它来执行拆分

 String[] tokens = mainString.split("\\^");

逃离角色。请尝试
mainString.split(\\^”)
Java的
String.split()
方法充满了有问题的边缘情况。如果你能使用这个优秀的类库,一定要查看它的类,因为它更容易使用。非常感谢。。它现在工作正常。值得一提的是,您需要转义
^
符号,因为它是一个特殊字符,在正则表达式语法中表示“行的开始”。@user1784541:很高兴知道,它工作正常。请不要忘记接受答案。