在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);
}
答案 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
列表中。所以它将包含以前的错误消息。