繁体   English   中英

Java:从显示ArrayList的Stringbuffer中删除括号和逗号

[英]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()函数就可以了。 它不包含方括号;-)

方括号由ArrayListtoString()方法发出。 您可以将其替换为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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM