Я отвечу на ваши вопросы:
1 - зачем нам делать setLength ()? без которого я получаю
java.lang.StringIndexOutOfBoundsException:
Индекс строки вне диапазона: 0
Изначально в вашем строковом буфере нет символов. Вам нужно вызвать setLength
, чтобы заполнить пустой строковый буфер символами. Нулевые символы, '\ 0' (или ненужные символы, как вы их называете) добавляются в строковый буфер, чтобы он достигал указанной длины. Если вы этого не сделаете, вы получите StringIndexOutOfBoundsException
, потому что в вашем строковом буфере нет символов. См. Javadocs на StringBuffer # setLength .
Итак, в конце вашего метода ваш строковый буфер имеет: [t][t][r][\0][\0][\0]
2 - «ttr» и три барахла появляются, когда я запускаю эту программу с
параметры - «качели» и «е». Как
удалите неиспользуемые пробелы в
буфер
Вы можете удалить нулевые символы, вызвав: r.toString().trim()
или r.substring(0,current)