1. Struktur der StringKlasse

Heute werden wir über die StringKlasse sprechen. Nach Ints ist die String-Klasse die beliebteste Klasse in Java. Es wird absolut überall verwendet. Es verfügt über eine Reihe nützlicher Methoden, die Sie besser kennen sollten.

Die StringKlasse ist außer primitiven Typen die einzige Klasse, deren Literale in einer switchAnweisung verwendet werden können; Der Compiler behandelt das Hinzufügen von Zeichenfolgen und String-Objekten auf besondere Weise. StringObjekte werden auf besondere Weise im Gedächtnis gespeichert. Im Grunde handelt es sich bei der StringKlasse um eine ganz besondere Klasse.

Außerdem Stringverfügt die Klasse über eine Reihe von Hilfsklassen, deren Zweck darin besteht, die Arbeit mit Strings in Java weiter zu vereinfachen. Wenn Sie das alles lernen, werden Ihnen viele Dinge wirklich viel leichter fallen. Nun, wir beginnen beim Kern dieses Ökosystems – der Organisation der StringKlasse.

Array von Zeichen

Der Aufbau der StringKlasse ist eigentlich sehr einfach: Darin befindet sich ein Zeichenarray (char-Array), das alle Zeichen des Strings speichert. So wird beispielsweise das Wort „Hallo“ gespeichert:

Struktur der String-Klasse
Wichtig!

Eigentlich ist das nicht ganz richtig. Da die StringKlasse sehr wichtig ist, werden viele Optimierungen vorgenommen und die Daten werden intern nicht als Zeichenarray, sondern einfach als Bytearray gespeichert.


2. Methoden der StringKlasse

Die StringKlasse hat viele Methoden: Sie hat allein 18 Konstruktoren! Deshalb erwähnen wir im Folgenden nur die grundlegendsten davon:

Methoden Beschreibung
int length()
Gibt die Anzahl der Zeichen in der Zeichenfolge zurück
boolean isEmpty()
Überprüft, ob die Zeichenfolge eine leere Zeichenfolge ist
boolean isBlank()
Überprüft, ob die Zeichenfolge nur Leerzeichen enthält: Leerzeichen, Tabulator, neue Zeile usw.
char charAt(int index)
Gibt das Zeichen an der Indexposition in der Zeichenfolge zurück.
char[] toCharArray()
Gibt ein Array der Zeichen (eine Kopie) zurück, aus denen die Zeichenfolge besteht
byte[] getBytes()
Konvertiert eine Zeichenfolge in eine Reihe von Bytes und gibt das Byte-Array zurück.
String[] split(String regex)
Teilt eine Zeichenfolge in mehrere Teilzeichenfolgen auf.
String join(CharSequence delimiter, elements)
Verbindet mehrere Teilzeichenfolgen miteinander
String intern()
Fügt eine Zeichenfolge in die ein string pool.

Mehr über Konstruktoren erfahren Sie im Artikel Java-Konstruktoren .

Schreiben wir ein Programm, das einen Dateipfad vom Unix-Stil in den Windows-Stil konvertiert. Unix verwendet das /Zeichen zum Trennen von Ordnern, während Windows das \Zeichen verwendet.

Lösung 1: Verwenden eines char-Arrays

Code Anmerkungen
Scanner console = new Scanner(System.in);
String path = console.nextLine();

char[] chars = path.toCharArray();
for (int i = 0; i < chars.length; i++)
   if (chars[i] == '/')
      chars[i] = '\\';

String result = new String(chars);
System.out.println(result);
Erstellen Sie ein Scannerobjekt.
Lesen Sie eine Zeile aus der Konsole.

Konvertieren Sie eine Zeichenfolge in ein Zeichenarray.
Durchlaufen Sie die Zeichen.
Wenn das Zeichen ist /,
ersetzen Sie es durch \. Vergessen Sie nicht die Flucht.

Erstellen Sie eine neue Zeichenfolge basierend auf dem Zeichenarray.
Zeigen Sie die Zeichenfolge an.

Lösung 2: – Verwendung der split()und- join()Methoden

Code Anmerkungen
Scanner console = new Scanner(System.in);
String path = console.nextLine();

String[] array = path.split("/");


String result = String.join("\\", array);


System.out.println(result);
Erstellen Sie ein Scannerobjekt.
Lesen Sie eine Zeile aus der Konsole.

Konvertieren Sie einen String in ein Array von Strings . Das /Zeichen wird als Trennzeichen verwendet (die zusätzlichen zwei Schrägstriche sind das Ergebnis doppelter Escapezeichen).
Verketten Sie alle Zeichenfolgen im Zeichenfolgen-Array . Das \wird als Trennzeichen verwendet (wir sehen, dass es maskiert ist).

Zeigen Sie die Zeichenfolge an.

Lösung 3: – Verwendung der replace(char oldChar, char newChar)Methode

Code Anmerkungen
Scanner console = new Scanner(System.in);
String path = console.nextLine();

String result = path.replace('/', '\\');

System.out.println(result);
Erstellen Sie ein Scannerobjekt.
Lesen Sie eine Zeile aus der Konsole.

Ersetzen Sie einfach ein Zeichen durch ein anderes
(das zweite ist maskiert).
Zeigen Sie die Zeichenfolge an.