2012-05-22 41 views

回答

38

^是Java正则表达式中的一个特殊字符 - 它表示“匹配输入的开始”。

您需要使用"\\^"进行转义。需要双斜杠来跳过\,否则Java的编译器会认为您正尝试在字符串中使用特殊的\^序列,类似于\n的换行符。

\^虽然不是特殊的转义序列,所以你会得到编译器错误。

总之,使用"\\^"

+0

尼斯 - +1从我这里。 – duffymo

+0

宾果!清楚的解释,thx @birryree –

0

^匹配字符串的开始。你需要逃避它,但在这种情况下,你需要这样的正则表达式解析器明白这意味着逃脱越狱逃跑,所以:

String splitChr = "\\^"; 
... 

应该得到你想要的东西。

0

String.split()接受正则表达式。 ^符号是表示输入序列开始的特殊符号。你需要转义它才能使它工作。你正确地试图用\来逃避它,但是它是一个特殊的字符来逃避Java字符串中的东西,所以你需要用另一个\来逃避转义字符。它会给你:

\\^ 
0

使用"\\^"。用这个例子作为指南:

String aryToSplit = "word1^word2"; 
    String splitChr = "\\^"; 
    String[] fmgStrng = aryToSplit.split(splitChr); 
    System.out.println(fmgStrng[0]+","+fmgStrng[1]); 

它应打印“字词1,单词2”,有效利用分裂的"\\^"字符串。第一个斜线用于逃避第二个斜线。如果没有双斜杠,Java会认为^是转义字符,就像换行符"\n"

+0

thx @Basilio德语欣赏代码示例,希望我能给出两个正确的答案 –

0

以上都不是没有意义的。这是正确的解释。

  1. 众所周知,^并不需要在Java String中转义。
  2. 由于^是RegulalExpression中的特殊charectar,它期望您通过\^
  3. 我们如何在java中创建字符串\ ^?像这样String splitstr =“\ ^”

请让我知道这个解释有帮助。如果有任何错误,请联系错别字。

感谢 -karuna

+0

更正==>像这样String splitstr =“\\ ^” – Karuna

+1

而不是评论,编辑您的答案,而不是 – LittleBobbyTables

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