Java拆分^(插入?)不工作,这是一个特殊字符吗?

时间:2012-05-22 02:42:28

标签: java split

在Java中,我试图拆分^字符,但它无法识别它。转义\^会导致代码错误。

这是一个特殊的角色,还是我需要做一些其他事情才能让它识别出来?

String splitChr = "^";
String[] fmgStrng = aryToSplit.split(splitChr); 

6 个答案:

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

上述答案都没有意义。这是正确的解释。

  1. 众所周知,^不需要在Java String中进行转义。
  2. 由于^是RegulalExpression中的特殊charectar,它希望你传入\ ^
  3. 我们如何在java中创建字符串\ ^?像这样的String splitstr =“\ ^”
  4. 请告诉我这个解释有帮助。如果有的话,请承担错别字。

    由于 -karuna

答案 5 :(得分:-2)

String[] fmgStrng = aryToSplit.split("\\\^");