使用StringBuilder将String的ArrayList连接成单个String

时间:2014-01-16 11:51:17

标签: java string arraylist stringbuilder

在Java中,我正在尝试将String中的字符串(称为filesToReport)连接成单个字符串,因为我想在对话框中的单个错误消息中显示所有文件名,如果它们与某些条件不匹配在文件打开器中。我现在使用的解决方案是StringBuilder,原则上它可以工作。然而,问题是,如果我,例如。打开三个与标准不符的文件,我首先得到一个列表文件没有。 1,然后一个列表文件没有。 1和2,然后最后一个框列出文件号。 1,2和3.最后一个框是我想要的单个框。有没有办法实现这个目标?

到目前为止我的解决方案如下:

if(filesToReport.size() > 0) {
    StringBuilder sb = new StringBuilder();

    for(String fileToReport : filesToReport) {
        sb.append(fileToReport).append(",");
    }

    String incompatibleFiles = sb.toString();
    String errorMessage = "The following files were not loaded \n" +
                          "as the are incompatible: \n" +
                          incompatibleFiles;
    JOptionPane.showMessageDialog(frame, errorMessage);
}

2 个答案:

答案 0 :(得分:1)

当您在此处发帖时,您可能已更正错误。您描述的行为可能是错误的括号引起的:

if(filesToReport.size() > 0) {
    StringBuilder sb = new StringBuilder();

    for(String fileToReport : filesToReport) {
        sb.append(fileToReport).append(",");

    String incompatibleFiles = sb.toString();
    String errorMessage = "The following files were not loaded \n" +
                          "as the are incompatible: \n" +
                          incompatibleFiles;
    JOptionPane.showMessageDialog(frame, errorMessage);
    }
}

答案 1 :(得分:1)

我无法在此代码段中看到问题,但我的猜测是您将错误消息附加到同一个filesToReport列表中。所以它将包含以前的错误消息。