Ich habe eine for-Schleife wie diese:
String myString = "123456789";
String prefix = null;
for (int i=6;i>=0;--i)
{
prefix = myString.substring(0,i);
process(prefix);
}
Das Problem ist, dass, wenn dieser Codeblock N Mal ausgeführt wird, N*7 Strings erstellt werden (7 Strings werden bei jeder Ausführung erstellt - weil die substring-Methode einen neuen String erstellt und diese Methode bei jeder Ausführung 7 Mal aufgerufen wird). Ich überlege, wie ich die Leistung in diesem Fall verbessern kann. Ich wollte wissen, ob es eine Möglichkeit gibt, nur einen String pro Ausführung zu verwenden, wobei dieser jedes Mal geändert wird. Das ist der Zweck des StringBuilders, aber ich denke, der StringBuilder hilft in diesem Fall nicht:
String myString = "123456789";
StringBuilder prefix = new StringBuilder(myString);
for (int i=6;i>=0;--i)
{
prefix.delete(i,prefix.length());
process(prefix.toString());
}
In diesem Fall verweist prefix immer auf dasselbe StringBuilder-Objekt, aber das gleiche Problem tritt an anderer Stelle auf, weil prefix.toString() immer ein neues String-Objekt zurückgibt.
Irgendeine Idee?
(Ich weiß, dass das Thema schon oft behandelt wurde. Aber ich habe einige Suche getan und ich habe keine Lösung gefunden, vielleicht ist das die minimale Nutzung des Speichers?)
Vielen Dank für Ihre Hilfe