在Java中,我試圖分割^
這個字符,但它沒有識別它。轉義\^
引發代碼錯誤。Java拆分^(插入符號?)不起作用,這是一個特殊字符嗎?
這是一個特殊字符還是我需要做別的事情才能讓它識別它?
String splitChr = "^";
String[] fmgStrng = aryToSplit.split(splitChr);
在Java中,我試圖分割^
這個字符,但它沒有識別它。轉義\^
引發代碼錯誤。Java拆分^(插入符號?)不起作用,這是一個特殊字符嗎?
這是一個特殊字符還是我需要做別的事情才能讓它識別它?
String splitChr = "^";
String[] fmgStrng = aryToSplit.split(splitChr);
^
是Java正則表達式中的一個特殊字符 - 它表示「匹配輸入的開始」。
您需要使用"\\^"
進行轉義。需要雙斜槓來跳過\
,否則Java的編譯器會認爲您正嘗試在字符串中使用特殊的\^
序列,類似於\n
的換行符。
\^
雖然不是特殊的轉義序列,所以你會得到編譯器錯誤。
總之,使用"\\^"
。
^匹配字符串的開始。你需要逃避它,但在這種情況下,你需要這樣的正則表達式解析器明白這意味着逃脫越獄逃跑,所以:
String splitChr = "\\^";
...
應該得到你想要的東西。
String.split()
接受正則表達式。 ^
符號是表示輸入序列開始的特殊符號。你需要轉義它才能使它工作。你正確地試圖用\
來逃避它,但是它是一個特殊的字符來逃避Java字符串中的東西,所以你需要用另一個\
來逃避轉義字符。它會給你:
\\^
使用"\\^"
。用這個例子作爲指南:
String aryToSplit = "word1^word2";
String splitChr = "\\^";
String[] fmgStrng = aryToSplit.split(splitChr);
System.out.println(fmgStrng[0]+","+fmgStrng[1]);
它應打印「字詞1,單詞2」,有效利用分裂的"\\^"
字符串。第一個斜線用於逃避第二個斜線。如果沒有雙斜槓,Java會認爲^是轉義字符,就像換行符"\n"
thx @Basilio德語欣賞代碼示例,希望我能給出兩個正確的答案 –
以上都不是沒有意義的。這是正確的解釋。
請讓我知道這個解釋有幫助。如果有任何錯誤,請聯繫錯別字。
感謝 -karuna
更正==>像這樣String splitstr =「\\ ^」 – Karuna
而不是評論,編輯您的答案,而不是 – LittleBobbyTables
String[] fmgStrng = aryToSplit.split("\\\^");
尼斯 - +1從我這裏。 – duffymo
賓果!清楚的解釋,thx @birryree –