[英]Java: Removing brackets and commas from a Stringbuffer displaying an ArrayList
假设当前我有一个要在我的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(",", "");
我总是收到以下错误:
线程“ AWT-EventQueue-0”中的异常java.util.regex.PatternSyntaxException:索引0附近的未封闭字符类[
我使用了错误的方法吗? 我应该使用其他密码还是其他地方的错误?
您的toString()
函数就可以了。 它不包含方括号;-)
方括号由ArrayList
的toString()
方法发出。 您可以将其替换为StringBuilder
并遍历列表。
顺便说一句,您可以使用StringBuilder
代替StringBuffer
。 此处无需同步。
如果要打印不带括号和逗号的字符串,请不要直接在集合上调用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();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.