У меня есть цикл for, подобный этому:
String myString = "123456789";
String prefix = null;
for (int i=6;i>=0;--i)
{
prefix = myString.substring(0,i);
process(prefix);
}
Проблема в том, что если этот блок кода будет выполнен N раз, будет создано N * 7 строк (7 строк будут созданы для каждого выполнения - потому что метод подстроки создает новую строку, и этот метод вызывается 7 раз для каждое исполнение).
Я думаю о том, как улучшить производительность в этом случае. Я хотел знать, есть ли способ использовать только одну строку для каждого выполнения, причем каждый раз это модифицируется. Это цель StringBuilder, но я думаю, что StringBuilder в этом случае не поможет:
String myString = "123456789";
StringBuilder prefix = new StringBuilder(myString);
for (int i=6;i>=0;--i)
{
prefix.delete(i,prefix.length());
process(prefix.toString());
}
В этом случае префикс всегда ссылается на один и тот же объект StringBuilder, но та же проблема возникает в другом месте, потому что prefix.toString () всегда возвращает новый объект String.
Есть идеи?
(Я знаю, что тема была рассмотрена много раз. Но я провел некоторый поиск и не нашел решения, может быть, это минимальное использование памяти?)
Спасибо за вашу помощь