在 Java 中,我试图拆分^
字符,但它无法识别它。转义\^
会引发代码错误。
这是一个特殊字符还是我需要做其他事情才能让它识别它?
String splitChr = "^";
String[] fmgStrng = aryToSplit.split(splitChr);
The^
是 Java 正则表达式中的一个特殊字符 - 它表示“匹配输入的开头”。
您将需要使用"\\^"
. 需要双斜杠来转义\
,否则 Java 的编译器会认为您正在尝试\^
在字符串中使用特殊序列,类似于\n
换行符。
\^
不是一个特殊的转义序列,所以你会得到编译器错误。
简而言之,使用"\\^"
.
以上答案都没有任何意义。这是正确的解释。
String splitstr = "\\^";
^ 匹配字符串的开头。您需要转义它,但在这种情况下,您需要转义它,以便正则表达式解析器理解这意味着转义转义,所以:
String splitChr = "\\^";
...
应该得到你想要的。
String.split()
接受一个正则表达式。符号是一个特殊符号,^
表示输入序列的开始。您需要逃脱它才能使其工作。你试图用它来转义它是对的,\
但它是一个特殊字符来转义Java字符串中的东西,所以你需要用另一个\
. 它会给你:
\\^
使用"\\^"
. 使用此示例作为指南:
String aryToSplit = "word1^word2";
String splitChr = "\\^";
String[] fmgStrng = aryToSplit.split(splitChr);
System.out.println(fmgStrng[0]+","+fmgStrng[1]);
它应该打印“word1,word2”,有效地使用"\\^"
. 第一个斜线用于转义第二个斜线。如果没有双斜线,Java 会认为 ^ 是一个转义字符,就像换行符一样"\n"