Skip to main content

So nutzt du Methoden aus der Java String Klasse


java programmierung methoden java string klasse

In einen der letzten Beiträge haben wir darüber gesprochen,

  • dass Java Strings – Objekte sind.
  • Dass Strings in allen Programmen äußerst häufig vorkommen
  • Und dass sich deshalb Referenzvariablen String-Objekte im String Pool teilen.

Das Konzept hinter dem String-Pool ist die Teilung der Ressourcen.
Und das bedeutet:

  • Weniger Objekte – mehr Speicher
  • Mehr Speicher – bessere Performance

Es bedeutet aber auch, dass stets und ständig die Sicherheit gewährleistet sein muss.

Wenn ungewiss ist, wie viele Referenzvariablen stets und ständig auf die String-Objekte zeigen – können diese nicht einfach so verändert werden.

Java-Strings-Pool-4-Verweise-1-Objekt

Wenn du das String-Objekt bzw. dessen Textwert „Matze“ in „Matze2“ ändern würdest, denn hießen alle Nutzer „Matze2“.
Und das wäre blöd.

Deshalb sind Strings besonders geschützt.

In Java sind Strings unveränderbar.

Egal, wie du die Strings erzeugst – Es handelt sich immer um Objekte der Klasse String.

Und diese Klasse befindet sich im Standardpaket der Java API.
Das heißt dann:
Du bekommst bei jedem String-Objekt, welches du anlegst automatisch Methoden dazu.
Und mit diesen Methoden kannst du das String-Objekt verändern.

Lass uns die String-Klasse in den API Docs anschauen.

Java-String-Klasse-API-DOCS

Schau dir die Methoden, welche die String-Klasse so bietet einmal an.
Vor allem die Rückgabewerte.
Java-Klasse-Strings-Rückgaben

Dort siehst du als Rückgabe – Strings, Integer oder mitunter auch booleans.

Erst einmal nicht ungewöhnlich…
Wenn du dir allerdings die Beschreibungen der einzelnen Methoden mit String-Rückgabe, genauer anschaust – Dann siehst du, dass bei allen Methoden neue Strings produziert werden.

Der String, welchen du übergibst bleibt unverändert.
Stattdessen geben dir die Methoden neue Strings zurück.

Lass uns das einmal ausprobieren.

So kannst du den String mit einer Methode verändern

Suche dir irgendeine Methode aus den API Docs aus.

Du kannst zum Beispiel Textausschnitte extrahieren.
Dies machst du mit der Methode substring().

  • Du gibst das Objekt ein.
  • Setzt den Punkt und leitest die Punktnotation ein.
  • Und dann schreibst du den Namen der Methode – also substring.
  • In die Klammern setzt du eine Zahl.
    Die Zahl ist die Position des Schriftzeichens, ab wann extrahiert werden soll.

Bei dem Textwert „Matze“ und der Methode substring(2)- würde die Methode den Textwert „tze“ zurückliefern.
Probieren wir es aus.


public class ChatProgramm {
 
public static void main(String[] args) {
String benutzerEins = "Matze"; //neues String-Objekt ohne Konstruktor erstellt        
 
benutzerEins.substring(2); //extrahiert ab dem zweiten Buchstaben
System.out.println(benutzerEins);//Es bleibt dennoch Matze
}
}

Matze bleibt Matze.
Das Objekt wurde nicht verändert.

Aber es wurde ein neues String-Objekt angelegt.
Und zwar direkt in den Pool.

Java-Strings-Substring

Und dieses hat noch keinen Verweis.
Es existiert keine Referenzvariable, welche auf dieses neue Objekt zeigt.

Der „benutzerEins“, aus dem dieses neue Objekt erschaffen wurde, behält seine Referenz.

Das heißt:

  • Wenn du den String veränderst, musst du immer auch einen neuen Verweis anlegen.
  • Ansonsten kannst du den neuen String nicht verwenden.
  • Und der String lebt ohne Referenzvariable, somit ohne Verweis.
  • Der neuer String ist somit Futter für den Garbage Collector.

public class ChatProgramm {
 
public static void main(String[] args) {
String benutzerEins = "Matze";
 
String teilStueck = benutzerEins.substring(2); //extrahiert ab dem zweiten Buchstaben
System.out.println(teilStueck);//Rückgabe tze
}
}

Jetzt verweist die Referenzvariable „benutzerEins“ auf den Matze-String.
Und die Referenzvariable „teilStueck“ auf den extrahierten neuen String.

Zusammenfassung:

  • In Java sind Strings unveränderlich.
    Und das ist auch gut so.
  • Aufgrund dessen, dass Strings im Constant Pool verwaltet werden, können sämtliche Variablen diesen String nutzen.
  • Dadurch muss so ein String-Objekt besonders geschützt sein.
  • Alle Methoden, welche die String-Klasse dir bietet, erschaffen lediglich einen neuen String.
  • Wenn du diesen verwenden möchtest – Musst du immer eine neue Referenzvariable dazu anlegen.

Ähnliche Beiträge