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