重写 toString 以删除元素之间的空格

发布于 2024-12-13 01:57:40 字数 253 浏览 2 评论 0原文

如您所知,在 Vector 上调用的 toString() 方法输出 this

[foo, bar, item, item4]

这是非常基本的,但是我怎样才能得到它(删除元素之间的空格)?

[foo,bar,item,item4]

谢谢大家

编辑:return nom.toString().replace(" ", "");不是解决办法!

As you know, the toString() method called on a Vector output this

[foo, bar, item, item4]

This is pretty basic but, how could I get this instead (removing white spaces between elements)?

[foo,bar,item,item4]

Thank you all

EDIT: return nom.toString().replace(" ", ""); is not a solution !

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

何止钟意 2024-12-20 01:57:40

包装您的向量类并覆盖 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]

Wrap your vector class and override 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]
贱人配狗天长地久 2024-12-20 01:57:40

仅当您子类化 Vector 时,覆盖才有意义。

如果是,那么您可以使用 Apache Commons Lang 的 StringUtils.join 如下:

@Override
public String toString() {
    return "[" + StringUtils.join(this, ",") + "]";
}

如果你想留在纯Java中,glowcoder有最好的答案。

Overriding only makes sense if you are subclassing Vector.

If you are, then you can use Apache Commons Lang's StringUtils.join as follows:

@Override
public String toString() {
    return "[" + StringUtils.join(this, ",") + "]";
}

If you want to stay in plain Java, glowcoder has the best answer.

橘和柠 2024-12-20 01:57:40

如果您确定元素中没有 ", " ,您可以尝试:

System.out.println(v.toString().replace(", ", ","));

If you are sure that you don't have ", " in your elements, you can try:

System.out.println(v.toString().replace(", ", ","));
橘虞初梦 2024-12-20 01:57:40

只需扩展 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();
}

Just extend Vector class and override the 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();
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文