03.05 Immutability von Strings

In den letzten Kapiteln haben Sie einige Methoden der String-Klasse kennengelernt. Ihnen ist dabei evtl. aufgefallen, dass keine Methode den String verändert, sondern lediglich einen veränderten String zurückliefert. Das liegt daran, dass Strings immutable und somit unveränderbar sind.

Egal wie Sie einen String „verändern“, es wird immer ein neuer String zurückgeliefert. Das sieht man schon an Methoden wie replace oder substring. Dort wird zwar ein manipulierter String erstellt, aber der Ursprungs-String nicht überschrieben sondern ein neuer angelegt. Der alte String existiert unverändert weiter.

String str = "Hallo,_das_ist_ein_Test";
System.out.println(str.replace('_', ' '));
System.out.println(str);

Um den alten String zu überschreiben (auch hier wird natürlich ein neuer String erstellt) muss man den Rückgabewert der Variablen zuweisen.

String str = "Hallo,_das_ist_ein_Test";
str = str.replace('_', ' ');
System.out.println(str);

Selbiges gilt selbstverständlich auch, wenn ein oder mehrere Strings mit einem Plus aneinander gekettet werden.

String str = "Hallo";
String str2 = " ";
String str3 = "Welt";
String hallowelt = str + str2 + str3;

str, str2 und str3 bleiben unverändert. Aber hallowelt wird ein neuer String – bestehend aus str, str2 und str3 – zugewiesen.

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.