2012-05-22 52 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("\\\^");