Ogni volta che concateni stringhe con il + / +=, viene usato sotto-sotto un StringBuffer (pre Java 5) o StringBuilder (da Java 5) che poi viene buttato via. Quindi è un problema (di memoria e di performance) specialmente se fatto continuamente in loop. Quindi la concatenazione no.
Immagino che sei sicuramente >= Java 5, quindi puoi usare StringBuilder che rispetto a StringBuffer non è thread-safe ma va benissimo in un contesto "locale" come in un metodo o comunque nel contesto di un unico thread.
Ma il punto non è tanto StringBuffer vs StringBuilder. La questione grossa iniziale te l'ho segnalata io all'inizio: nel doTrimmedLine istanziavi un StringBuffer che sostanzialmente non poteva essere utile al chiamante.
Quindi sei ancora su questo design (e se sì, perché?) oppure no?


Rispondi quotando