Wie lässt sich ein String-Array in einen einfachen String wandeln?

Ein StringBuilder ermöglicht es, performance-optimiert einzelne Strings zu verketten, sodass einzelne String-Elemente eines Arrays miteinander zu einem Einzelstring verknüpft werden können.

Im Beispiel wird ein einfaches String-Array mit sieben Einträgen und anschließend ein leeres StringBuilder-Objekt erzeugt.
Das Array wird in einer for-Schleife durchlaufen und jeder Einzeleintrag dem Builder mit einem Betriebssystem-typischen Zeilenumbruch hinzugefügt. Nach erfolgtem Durchlauf der Schleife wird der StringBuilder zum String gewandelt und ausgegeben.

public class StringArrayZuString {

    public static void main(String[] args) {
        String[] strings = {"Ene", "mene", "Maus", "und", "du", "bist", "raus"};
        StringBuilder builder = new StringBuilder();
        for(String s : strings) {
            builder.append(s + System.getProperty("line.separator"));
        }
        System.out.println(builder.toString());
    }
}

Man mag sich fragen, weshalb die Verkettung der Einzelstrings nicht viel einfacher etwa in der folgenden Form erfolgt:

//...
String str = "";
for(String s : strings) {
    str += s + System.getProperty("line.separator");    // falsch
}
System.out.println(str);
//...

Die Ursache liegt in der Tatsache begründet, dass Strings in Java unveränderlich sind. Das bedeutet, dass im letzten Fall bei jeder Verkettung ein neues String-Objekt erzeugt wird. Dies mag bei kleinen Arrays verkraftbar sein, erzeugt aber in jedem Falle unnötigen Overhead und sollte zu Gunsten eines sauberen Programmierstils vermieden werden.

Für weitere Informationen siehe auch den Artikel zum funktional ähnlichen StringBuffer.

Wenn Ihnen javabeginners.de gefällt, freue ich mich über eine Spende an diese gemeinnützigen Organisationen.