在Java中使用拆分时出错

在Java中使用拆分时出错,java,regex,string,split,Java,Regex,String,Split,我在Java中像这样使用split String str = "Bx=1946^Cx=1043423"; String[] parts = str.split("^"); for (String part : parts) System.out.println(part); 但事实证明,分割后的parts数组中只有一个元素,所以如果我想使用“^”作为分隔符,我应该写什么 谢谢您需要转义^,它在正则表达式(单词、行和其他词的开头)中有特殊含义: 输出将是: Bx=1946 Cx=1043

我在Java中像这样使用split

String str = "Bx=1946^Cx=1043423";
String[] parts = str.split("^");
for (String part : parts)
    System.out.println(part);
但事实证明,分割后的parts数组中只有一个元素,所以如果我想使用“^”作为分隔符,我应该写什么


谢谢

您需要转义
^
,它在正则表达式(单词、行和其他词的开头)中有特殊含义:

输出将是:

Bx=1946
Cx=1043423
使用

而不是

str.split("^");

Pattern.quote()
也适用于使用多个符号拆分的情况。例如,我们可以使用
str.split(Pattern.quote(“^^^”)
与其添加太多特殊字符,如
str.split(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\,特别是考虑到它们可以使用常规字符串分隔符,而不会增加正则表达式的潜在混淆。为什么您认为这是一个比公认答案更好的答案?
Pattern.quote()
在使用多个符号拆分的情况下也能起作用。例如:我们可以使用str.split(Pattern.quote(“^^^^”)
而不是添加太多的特殊字符,比如
str.split(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\^”)
@方法为什么不?它确实回答了这个问题。@marounnaroun它现在回答了。谢谢你的解释。
str.split(Pattern.quote("^"));
str.split("^");