В моем приложении пользователь выберет несколько опций из 10 параметров. Количество выбранных параметров может варьироваться от 1 до 10. Теперь я пытаюсь отделить эти выбранные параметры, вставив запятую между номерами. Я получаю номера, как это:Как вставить символы внутри строки в Java
123456
346
12
5
Теперь я пытаюсь преобразовать их, как это:
1,2,3,4,5
3,4,6
1,2
5(no comma)
Для этого я пытаюсь StringBuffer, но я получаю неправильный вывод:
For 12 output is 1,2
For 5 output is 5
For 123 output is 1,,23
For 123456 output is 1,,,,,23456
Помогите найти ошибку в коде?
String str = jTextField1.getText();
StringBuffer sb = new StringBuffer(str);
int x = 0;
for (int i = 0; i < str.length() - 1; i++) {
sb.insert(++x, ",");
}
System.out.println(sb);
Я чувствую, как педагогически, это должно быть намекают, но что спрашивающие должен решить. Подумайте, что происходит, когда StringBuffer растет с этой запятой: что это означает об индексе всего после него? – BaseZen
Нужно использовать 'StringBuffer'? Похоже, вы используете его локально внутри метода, поэтому «StringBuilder» может быть более подходящим для работы. – initramfs
@BaseZen Спасибо за ваш комментарий, но я не могу понять, что вы хотите сказать? Пожалуйста, скажите мне в легко понятной версии. –