Код в вашем методе написан немного сложным способом.
Я использовал регулярное выражение и упростил код, который вы хотели написать, и вот он.
private String getPrintingLabels(ResultSet rs) throws SQLException {
Pattern p = Pattern.compile("([a-zA-Z]+)(,? )?");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < listModelGrid.getSize(); i++) {
String element = String.valueOf(listModelGrid.getElementAt(i));
Matcher m = p.matcher(element);
while(m.find()) {
sb.append(rs.getString(m.group(1)));
if (m.group(2) != null) {
sb.append(m.group(2));
}
}
sb.append(System.getProperty("line.separator")); // helps correctly insert a new line for any platform linux/windows/any
}
System.out.println(sb.toString());
return sb.toString();
}
Я надеваюНе знаю, знакомы ли вы с регулярными выражениями, но с помощью регулярных выражений ваша работа выполняется довольно легко.Кроме того, использование конкатенации строк не очень хорошая идея, особенно если вам приходится делать это довольно часто, поэтому я использовал StringBuild для той же цели.Также используется свойство line.separator, поэтому независимо от того, на какой платформе вы запускаете код, в вашей строке будет соответствующая строка.Просто используйте мой метод вместо вашего и посмотрите, соответствует ли желаемая строка той, которую вы хотели.
Кроме того, в моем коде вам не придется вручную управлять вставкой "," или "", поскольку это делается автоматически какон присутствует в строке.
Также убедитесь, что вы импортируете эти два или любой необходимый импорт,
import java.util.regex.Matcher;
import java.util.regex.Pattern;