2011-11-07 27 views
1

我有一個HashMap。密鑰將是一個字符串,值可以是從變量到ArrayList的任何內容。從ArrayList中刪除[]輸出並存儲在HashMap中<String,Object>

問題是我有一個ArrayList。存儲在ArrayList中的值是Region1,Region2,Region3,Region4。

所以當我把這個ArrayList放在HashMap中並打印HashMap時,我得到的輸出爲 [Region1,Region2,Region3,Region4]。

問題是我需要在Db中插入整個逗號分隔的字符串,並且我的過程無法在此輸出中識別[]。

我該如何解決這個問題..我無法在DB端更改任何內容。 下面的代碼片段: -

ArrayList<String> Region=new ArrayList<String>(); 
     Region.add("Region1"); 
     Region.add("Region2"); 
     Region.add("Region3"); 
     System.out.println(Region); 

Output is [Region1, Region2, Region3] 

我把此ArrayList中的HashMap

HashMap<String,Object> regionHashMap=new HashMap<String,Object>(); 
     regionHashMap.put("regionssss", Region); 
     System.out.println(regionHashMap); 

Output is {regionssss=[Region1, Region2, Region3]}. 

如何從ArrayList中刪除[] ...

我已經使用的StringBuffer和succedded迭代器,但我不能每次都使用它因爲我有大量的ArrayList將進入HashMap內部..

+0

'我已經通過使用StringBuffer和Iterator成功了,但我無法每次都使用它因爲我有大量的ArrayList會進入HashMap',你的意思是你已經成功地通過迭代列表創建腳本,但感覺到可能是一個表演頭頂上?那麼,即使ArrayList中的toString的默認實現也執行[相同的事情](http://developer.classpath.org/doc/java/util/AbstractCollection-source.html),所以請繼續並使用您的實現。我想知道爲什麼你想在數據庫中存儲逗號分隔值? – aishwarya

+0

@aishwarya我有我自己的理由在數據庫中插入CSV ...我無法幫助它,因爲我受到了限制... – AngelsandDemons

回答

2

列表的字符串表示自動包含「[]」字符。 你可以創建自己的「的toString」方法:

private String listToString(List<?> l) { 
    StringBuilder sb = new StringBuilder(); 
    for (int i = 0; i < l.size(); i++) { 
     sb.append(l.get(i)); 
     if (i != l.size() -1) sb.append(", "); 
    } 
    return sb.toString(); 
} 

或者,你可以使用子功能刪除括號:

String s = list.toString(); 
s = s.substring(1, s.length()-1); 
+0

第二種方法似乎更有用...謝謝.. :) – AngelsandDemons

+0

謝謝第二個是最好的 –

0

根本不要使用toString()。它不是用來創建格式化的UI字符串。它是一個開發人員工具,而不是用戶演示工具。

要做你想做的就是創建一個方法來做你的顯示,然後在該方法中進行格式化。

查看this發表以獲取更多信息。

+0

您能否給我一個代碼片段...我會對您表示遺憾。 – AngelsandDemons

0

嘗試子類HashMap和覆蓋toString()方法

相關問題