让我们说目前我有一个我希望在我的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附近的未闭合字符类 [
我使用了错误的方法吗?我应该使用另一个还是其他地方的错误?
答案 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();