如您所知,在Vector上调用的toString()方法输出此
[foo, bar, item, item4]
这是非常基本的但是,我怎么能得到它(去除元素之间的空格)?
[foo,bar,item,item4]
谢谢大家
编辑:return nom.toString()。replace(“”,“”);不是解决方案!
答案 0 :(得分:4)
包装你的vector类并覆盖toString。
import java.util.*;
class AwesomeVector<E> extends Vector<E> {
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("[");
for(int i = 0; i < size(); i++) {
if(i != 0) sb.append(",");
sb.append(get(i));
}
sb.append("]");
return sb.toString();
}
public static void main(String[] args) {
AwesomeVector<String> av = new AwesomeVector<String>();
av.add("This");
av.add("is");
av.add("a test");
System.out.println(av.toString());
}
}
C:\Documents and Settings\glowcoder\My Documents>javac AwesomeVector.java
C:\Documents and Settings\glowcoder\My Documents>java AwesomeVector
[This,is,a test]
答案 1 :(得分:3)
如果你是Vector
的子类,那么覆盖才有意义。
如果您是,那么您可以使用Apache Commons Lang的StringUtils.join,如下所示:
@Override
public String toString() {
return "[" + StringUtils.join(this, ",") + "]";
}
如果你想留在普通的Java中,那么glowcoder就是最好的答案。
答案 2 :(得分:2)
只需扩展Vector类并覆盖toString()
@Override
public String toString() {
StringBuffer sb = new Stringbuffer("[");
for(int i=0; i < elementCount ;i++ ){
sb.append(elementData.toString());
if(i!= elementCount -1){
sb.append(",");
}
}
sb.append("]");
return sb.toString();
}
答案 3 :(得分:2)
如果您确定元素中没有", "
,可以尝试:
System.out.println(v.toString().replace(", ", ","));