2012-01-28 142 views
4

使用函數split拆分此字符串。這裏是我的代碼:Java和字符串分割

String data= "data^data"; 
String[] spli = data.split("^"); 

當我嘗試在spli中只包含一個字符串。這看起來像java沒有看到「^」分裂。有誰知道我怎樣才能通過字母「^」分割這個字符串?

編輯

解決:P

+0

如果您需要通過點擊答案 – 2012-01-28 09:23:49

+0

Jigar附近的標記來標記答案,那真的是您的問題的答案,建議但不是必需的。 – Joey 2012-01-28 12:05:11

回答

7

這是因爲String.split需要一個正則表達式,而不是一個文字字符串來逃避它。你必須逃避^,因爲它在正則表達式中具有不同的含義(錨定在字符串的開頭)。所以拆分實際上是在第一個字符之前完成的,給你完整的字符串保持不變。

你逃跑用\正則表達式元字符,它必須是Java中的字符串\\,所以

data.split("\\^") 

應該工作。

3

你需要,因爲它需要REG-EX

\\^ 
2

這不起作用,因爲.split()預計它的參數是一個正則表達式。 「^」在正則表達式中有特殊的意義,所以不能像你期望的那樣工作。爲了讓它起作用,你需要逃避它。使用\\^

+0

是的這個作品,感謝的人:P – klemens 2012-01-28 09:20:56

3

特殊字符像^需要與\

+3

居然用了\\,因爲java – AlanFoster 2012-01-28 09:18:46

+1

啊,真的!我的錯。 +1 – Dawood 2012-01-28 09:19:22

2

的原因是split的參數是一個regular expression轉義,因此‘^’是指行的開頭。所以你需要轉義成ASCII- ^:使用參數「\\^」。