我必須以String的形式打印列表值。但是我在列表中阻止了[
和]
。這是我的代碼。從arraylist中刪除[和]
List dbid=new ArrayList();
dbid.add(ar.getdbID());
String check=ar.getdbID().toString();
輸出上面的代碼:
[2, 3,4]
但我只是需要這樣的:
2,3,4
我必須以String的形式打印列表值。但是我在列表中阻止了[
和]
。這是我的代碼。從arraylist中刪除[和]
List dbid=new ArrayList();
dbid.add(ar.getdbID());
String check=ar.getdbID().toString();
輸出上面的代碼:
[2, 3,4]
但我只是需要這樣的:
2,3,4
您可以使用替代String類的方法來刪除這些括號,或者你可以使用普通的表達也(我猜正則表達式將在你的情況下矯枉過正)
字符串替換是一個壞主意,因爲某些List的成員也可能包含方括號。發佈進程String的唯一安全方法是'string.substring(1,string.length() - 1)' – 2011-03-18 08:55:24
有 「在列表中的」 無[
和]
。這只是包含這些字符的String
表示(由toString()
生成)。區分這兩件事很重要。
Joiner.on(',').join(dbid);
你可以手動實現:
StringBuilder b = new StringBuilder();
Iterator<?> it = dbid.iterator();
while (it.hasNext()) {
b.append(it.next());
if (it.hasNext()) {
b.append(',');
}
}
String result = b.toString();
不需要dbid.next()。toString(),append(Object)也是一樣。否則:+1 – 2011-03-18 07:36:49
@Sean:true,「append(Object)」更好,因爲它避免了NPE對'null'值的影響。 – 2011-03-18 07:37:52
Btw你的代碼不能編譯。看起來像清晨的代碼:-) – 2011-03-18 08:21:31
喜歡這個:
StringBuilder sb = new StringBuilder();
Iterator it = dbid.iterator();
if(it.hasNext()){
sb.append(it.next());
while(it.hasNext()){
sb.append(',').append(it.next());
}
}
return sb.toString();
Apache StringUtils join method對這個非常有用的:
StringUtils.join(new String[] { "1", "2", "3"}, ",");
這將返回字符串 「1,2,3」
還有'join(Collection)'可能更合適,因爲他已經有了'List'。 – 2011-03-18 11:58:46
的toString()函數將僅僅是對象轉換成它的字符串形式。所以它將字符串數組作爲字符串打印出來。這就是爲什麼[]來了。
您必須執行以下操作才能獲得所需的結果。
List dbid=new ArrayList();
dbid.add(ar.getdbID());
String[] checks=ar.getdbID();
for(String check:checks) {
System.out.print(check+" ");
}
System.out.print("\n");
希望你明白這個用法。
String pattern = "[\\[\\]]";
String result = yourstring.replaceAll(pattern, "");
這是迄今爲止我嘗試過的最好的選擇,它爲我工作。 在這種情況下,「yourstring」將是您的字符串對象。
我認爲最好是遍歷整個列表。這樣的事情會做的伎倆:
for(int i=0; i<yourList().size();i++){
out.println(yourList().get(i));
}
您能否詳細說明您的答案,並添加關於您提供的解決方案的更多描述? – abarisone 2015-06-17 06:33:02
我同意在這種情況下做一個簡單的迭代 - 任何打印所有值的東西都必須遍歷整個列表。但是,您正在爲每個元素打印整行,而OP要求用逗號分隔。也許你可以添加到你的答案? – 2015-06-17 07:05:41
我喜歡斯卡拉的原因之一。 – Nishant 2011-03-18 07:34:03
ar.getdbID()返回什麼? – 2011-03-18 07:41:18