2012-07-05 95 views
2

我有以下響應轉換字符串數組來HashMap中

T2269|[email protected]@2a1d2d89aa96ddd6|45464047 

通過使用分裂(「\\ |」)我已經轉換成字符串數組對象。對於每個字段的含義如下:

T2269     id 
[email protected]@2a1d2d89aa96ddd6 cid 
45464047    refno 

不,我必須把它轉換成HashMap對象。他們的上述任何解決方案..

以上回應給出例如。在實際中,字符串數組對象的長度是36。

+4

什麼是您的地圖中的鍵和值?你的意思是有三個條目的地圖(id = T2269,cid = 175 ...,refno = 4546 ...)?或者是一個地圖,其值是包含三個字段(id,cid,refno)的​​對象?在那種情況下,關鍵是什麼? – assylias

回答

6
final String[] fields = input.split("\\|"); 
final Map<String, String> m = new HashMap<String, String>(); 
int i = 0; 
for (String key : new String[] {"id", "cid", "refno"}) 
    m.put(key, fields[i++]); 
+1

現在如何獲得一些字段[i] ?? – 2016-06-16 14:04:49

8

你必須循環並且由一個加的結果之一。 聲明數組的鑰匙,是這樣的:

static String[] keys = new String[]{"id", "cid", "refno", ...}; 

然後

String[] s = text.split("\\|"); 
for (int i = 0; i < s.length; i++) 
    map.put(keys[i], s[i]); 
0

的關鍵應該是唯一的,所以很明顯使用ID作爲密鑰將使完美的感覺,你的價值可以存儲爲包含id,cid,refno的數組/列表,或者您可以創建一個包含thos字段並存儲它的對象。