我必须以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