Java:从显示ArrayList

时间:2015-11-30 13:22:35

标签: java regex arraylist stringbuffer

让我们说目前我有一个我希望在我的java程序中显示的ArrayList。

我有一个像这样的Stringbuffer:

public String toString() {
    StringBuffer text = new StringBuffer();
    text.append("First name: ");
    text.append(firstname);
    text.append("   ");
    text.append("Last name: ");
    text.append(lastname);

    //to give each result it's own line
    text.append(System.getProperty("line.separator"));

    return text.toString();
}

这里调用方法:

NameDaoImpl name1 = new NameDaoImpl();
        Collection<NameBean> names = name1.getNames();
        System.out.println(betriebe);

getNames()方法是一个PreparedStatement,它遍历所有找到的结果并返回它们。

它给了我这个结果:

[First name: firstname1   Last name: lastname1
, First name: firstname2   Last name: lastname2
, First name: firstname3   Last name: lastname3
]

但是我希望它没有括号和逗号。我该如何做到这一点?我用方法replace和replaceall尝试了它,但是他们总是给我一个这样的错误:

return text.toString().replaceAll("[","").replaceAll("]","").replaceAll(",", "");

我总是收到以下错误:

  

线程中的异常&#34; AWT-EventQueue-0&#34; java.util.regex.PatternSyntaxException:索引0附近的未闭合字符类   [

我使用了错误的方法吗?我应该使用另一个还是其他地方的错误?

2 个答案:

答案 0 :(得分:1)

您的toString()功能完全正常。它无论如何都不包含括号; - )

括号由ArrayList的{​​{1}}方法发出。您可以通过列表中的toString()和循环替换它。

顺便说一句,您可以使用StringBuilder代替StringBuilder。这里不需要同步。

答案 1 :(得分:1)

如果您想在没有括号和逗号的情况下打印它们,请不要直接在您的收藏中调用toString():这就是插入它们的内容:

for (NameBean name : name1.getNames()) {
  System.out.print(name);
}

或者,如果你想要它在一个字符串中:

StringBuilder sb = new StringBuilder();
for (NameBean name : name1.getNames()) {
  sb.append(name);
}
String str = sb.toString();