2013-02-14 61 views
0

我想用分隔符分割一個字符串,當我從字符串數組中的不同單元格中獲取值時,我得到了一些奇怪的結果。例如:劃分字符串時的奇怪行爲

dataString = (String) hashMap.get("LCSSAMPLEREQUEST_sampleRequestString"); 

System.out.println(dataString); 

String dataStringSplit[] = dataString.split("quantity|&^&|"); 

String tempString = dataStringSplit[0]; 

這是第一個分隔符之前dataString行:

"sortingNumber|&^&|1|-()-|ID|&^&|1|-()-|DROPPED|&^&|false|-()-|" 

現在,當我做的'tempString'一個System.out,我得到沒有值的字符串。

如果我做tempString = dataStringSplit[1],然後我得到的'sor'值。

我在這裏做錯了什麼?

+0

逃跑,那將是* *得多容易幫助你,如果你只寫一個簡短而完整的程序演示問題。例如,你從哈希映射中獲取它的事實是不相關的。我強烈懷疑'split'與正則表達式是一個問題... – 2013-02-14 18:53:06

回答

1

"quantity|&^&|"應該"quantity\\|&\\^&\\|"|^是正則表達式中的元字符。爲了把它當作一個正常的字符內,你應該用反斜槓

+0

@jlordo。因爲他們不需要在正則表達式中轉義。 – 2013-02-14 18:54:07

+0

我的心在哪裏?但是,應該逃避行首的帽子。 – jlordo 2013-02-14 18:55:25

+0

@jlordo'<([{\^- = $!|]})?* +。>'是meta charcters .. :) – PermGenError 2013-02-14 18:56:34