Как Вы очищаете строковый буфер в Java после цикла, таким образом, следующее повторение использует ясный строковый буфер?
Один из вариантов - использовать метод delete следующим образом:
StringBuffer sb = new StringBuffer();
for (int n = 0; n < 10; n++) {
sb.append("a");
// This will clear the buffer
sb.delete(0, sb.length());
}
Другой вариант (немного чище) использует setLength(int len):
sb.setLength(0);
Смотрите Javadoc для дополнительной информации:
Я предлагаю создавать новый StringBuffer
(или еще лучше StringBuilder
) для каждой итерации. Разница в производительности действительно незначительна, но ваш код будет короче и проще.