В Java я могу перебирать содержимое StringBuilder и удалять/вставлять/заменять символы так, чтобы цикл оставался постоянным? Если это так, наилучшей практикой, я должен использовать for-loop, iterator или традиционный цикл от нуля до длины() - 1? НАПРИМЕР,изменить stringbuilder во время итерации на нем
StringBuilder b=new StringBuilder("12345");
for (int i=0; i< b.length(); i++) //traditional loop, iterator(which?),other?
char c= b.chartAt(i);
if(c == '1') b.deleteCharAt(i); // reduce the size,what is i pointing to now?
if(c=='2') b.insert(i,"two"); //increase the size
}
Edit: у меня есть большая строка, и мне нужно сделать изменения на нем, и я «не хочу производить копирует каждый раз. StringBuilder - это изменяемая строка, как я могу ее правильно использовать для внесения изменений в место? Я знаю, что я могу использовать replace/replaceall в самой строке, но здесь дело не в этом.
Если вы хотите удалить что-либо, то лучше итерации от конца до начала строки. – STaefi
Почему у вас есть 'b.insert (2," two ")'? это должно быть 'i' или' 2'? – Karthik
спасибо, исправлено! это я, конечно! – legrass