Hi,
also Erfahrungen hab ich keine, weil ich Swing nur einmal genutzt habe. Aber ich würde es mal so sehen:
Im Folgenden sei das ursprüngliche Verfahren Nummer (1). Das von mir vorgestellte sei (2).
Man muss eh erstmal zur Position a. Das ist bei beiden Verfahren gleich. Dann müssen beide mindestens bis zu b.
Während er bei (1) nun einen Aufwand von X hat, um bis b nach dem String zu suchen, wird die Variante (2) einen Aufwand Y haben, um bis zu dem Punkt zu wandern. Suche erfolgt keine. Stattdessen wird ein String erzeugt. Daher kann man nicht pauschal Y < X sagen.
Nun muss das Verfahren (2) noch den String suchen. Hat also den Aufwand Y + X.
Das Verfahren (1) sucht nun aber noch weiter mit dem Aufwand Z.
Y + X < X + Z
gilt also, wenn Z größer als Y ist. Und bei einem sehr langen Text kann es schnell vorkommen, dass der Aufwand einen Text sequentiell zu durchsuchen größer ist, als einen String anzulegen.
Hierbei ist mit Aufwand CPU-Aufwand gemeint.
Fazit: (2) lohnt sich, wenn man sich nicht unbedingt weit am Ende des Textes befindet, zumindest bzgl. CPU.
(1) lohnt sich, wenn die Texte kurz sind und man weniger Speicher verbrauchen will.
So und nun kommt noch die VM mit ihren Eigenschaften ins Spiel und würfelt vielleicht wieder alles durcheinander
Ich halte meine Variante dennoch für günstiger
Gruß
Mike