Java Tutorial #21

Die Klasse String in Java

2019-08-01 | Credit: rh2010/ adobe.stock

Thema in Kurzform

  • Ein String ist eine Zeichenkette und wird in Java durch ein Objekt der Klasse String repräsentiert. 
  • Die Klasse String ist im Paket java.lang, das nicht explizit importiert werden muss.

Einen String erstellen

Wir können einen String auf unterschiedliche Art erstellen. Die Klasse String stellt einige Konstruktoren bereit. Die meisten kommen aber nur selten zum Einsatz.

Da Strings in Java Objekte sind, können Sie natürlicherweise über den new-Operator erzeugt werden:

String str = new String("Hello!");

Weil Strings so häufig gebraucht werden, gibt es in Java eine abkürzende Syntax, um sie zu erstellen:

String str = "Hello!";

Diese Schreibweise erstellt automatisch ein neues String-Objekt und sieht der Erzeugung primitiver Datentypen ganz ähnlich. In gewisser Weise nehmen Strings in Java dadurch eine Sonderstellung ein.

Methoden der Klasse String

Die String-Verarbeitung ist in Java sehr komfortabel und es gibt für nahezu alle Wünsche eine entsprechende Methode. Wir sehen uns nun die wichtigsten nun an:

charAt()

Liefert einen char-Wert zurück, der dem Zeichen an der gewünschten Index-Position entspricht.

String str = "Falconbyte";
char c = str.charAt(1);
System.out.println(c); // a

compareTo()

Vergleicht einen String mit einem anderen String lexikografisch und liefert einen int-Wert zurück. Der Ergebniswert hat folgende Bedeutung:

kleiner 0: Der String ist lexikografisch kleiner. 
gleich 0: Beide Strings sind lexikografisch gleich.
größer 0: Der String ist lexikografisch größer.

String str = "ABC";
String str2 = "AB";
int x = str.compareTo(str2);
System.out.println(x); // 1

concat()

Fügt am Ende eines Strings eine Zeichenkette str hinzu und liefert diesen verketteten String zurück.

String str = "Hello ";
String str2 = str.concat("World!");
System.out.println(str2);

Strings sind in Java unabänderlich. Darum bleibt str von concat unberührt! Wir müssen das Ergebnis somit in einer neuen Variablen str2 "auffangen".

contains()

Prüft, ob ein String eine bestimmte char-Sequenz hat. Liefert entsprechend true oder false zurück.

String str = "Falconbyte";
System.out.println(str.contains("byte")); // true
System.out.println(str.contains("bit")); // false

endsWith()

Liefert true, wenn der String mit einem bestimmten Wert endet.

String str = "Falconbyte";
System.out.println(str.endsWith("byte")); // true

startsWith()

Liefert true, wenn der String mit einem bestimmten Wert anfängt.

String str = "Falconbyte";
System.out.println(str.startsWith("Falcon")); // true

equals()

Vergleicht zwei Strings miteinander. Wenn sie identisch sind, wird true zurückgeliefert.

String str = "Falconbyte";
System.out.println(str.equals("Falconbyte")); // true
System.out.println(str.equals("FALCONBYTE")); // false

equalsIgnoreCase()

Auch hier werden zwei Strings miteinander verglichen. Allerdings werden hier Groß- und Kleinbuchstaben nicht berücksichtigt.

String str = "Falconbyte";
System.out.println(str.equalsIgnoreCase("Falconbyte")); // true
System.out.println(str.equalsIgnoreCase("FALCONBYTE")); // true

indexOf()

Durchsucht den String und liefert die erste Position, an der ein Zeichen oder eine bestimmte Zeichenkette gefunden wurde. Ist das Zeichen/ die Zeichenkette nicht enthalten, wird -1 zurückgeliefert.

String str = "Falconbyte";
int i = str.indexOf("c"); // 3
int i2 = str.indexOf("byte"); // 6
int i3 = str.indexOf("Z"); // -1

Alternativ kann die Startposition angegeben werden, ab der die Suche beginnen soll:

String str = "Java Java";
int i4 = str.indexOf("Ja", 4); // 5

length()

Gibt die Länge des Strings als int-Wert zurück.

String str = "This is Java!";
System.out.println(str.length()); // 13

isEmpty()

Liefert true, wenn die length() 0 ist.

String str = "";
System.out.println(str.isEmpty()); // true

replace()

Liefert einen neuen String zurück, in dem alle gesuchten Zeichen mit einem bestimmten Zeichen ersetzen.

String str = "Java";
String str2 = str.replace('v', 'V');
System.out.println(str2); // JaVa

Wir können mit replace() auch ganze Substrings ersetzen:

String str = "Java";
String str2 = str.replace("va", "pan");
System.out.println(str2); // Japan

Wie oben schon gesagt, sind Strings in Java unveränderbar. Der String in str bekommt von replace() nichts mit.

split()

Eine sehr praktische Methode, die einen String zerlegt und die Einzelteile als String-Array zurückliefert. 

Den Trenner können wir frei wählen. Im folgenden Beispiel ist es das Leerzeichen:

String str = "Wasser Feuer Erde Luft";
String[] strA = str.split(" ");

System.out.println(strA[0]); // Wasser
System.out.println(strA[1]); // Feuer
System.out.println(strA[2]); // Erde
System.out.println(strA[3]); // Luft

substring()

Liefert einen Teilstring ab einer bestimmten Position zurück.

String str = "Mein Name ist Bond. James Bond.";
String str2 = str.substring(20);
System.out.println(str2); // James Bond.

Alternativ kann zusätzlich zur Startposition auch die Endposition bestimmt werden:

String str = "Mein Name ist Bond. James Bond.";
String str2 = str.substring(20, 25);
System.out.println(str2); // James

toCharArray()

Löst einen String nach Einzelzeichen auf und liefert diese in einem char Array zurück.

String str = "Java";
char[] cA = str.toCharArray();

System.out.println(cA[0]); // J
System.out.println(cA[1]); // a
System.out.println(cA[2]); // v
System.out.println(cA[3]); // a

toLowerCase()

Wandelt alle Großbuchstaben eines Strings in Kleinbuchstaben um und liefert das Ergebnis als neuen String zurück.

String str = "Java";
String str2 = str.toLowerCase();
System.out.println(str2); // java

toUpperCase()

Wandelt alle Kleinnbuchstaben eines Strings in Großbuchstaben um und liefert das Ergebnis als neuen String zurück.

String str = "Java";
String str2 = str.toUpperCase();
System.out.println(str2); // JAVA

trim()

Entfernt alle führenden und nachfolgenden Leerzeichen:

String str = " Hallo Java ";
String str2 = str.trim(); // "Hallo Java"

valueOf()

Die statisch überladenen String.valueOf() Methoden liefern String-Repräsentationen eines primitiven Werts oder Objekts.

String s1 = String.valueOf(7419);
String s2 = String.valueOf(true);
String s3 = String.valueOf(new Mars());

System.out.println(s1); // 7419
System.out.println(s2); // true
System.out.println(s3); // paket1.Mars@2503dbd3
Werbung

Java lernen

Werde zum Java Profi!

PHP Lernen

Lerne serverbasierte Programmierung

JavaScript lernen

Skille dein Webcoding

FALCONBYTE.NET

Handmade with 🖤️

© 2018-2023 Stefan E. Heller

Impressum | Datenschutz | Changelog

Falconbyte Youtube Falconbyte GitHub facebook programmieren lernen twitter programmieren lernen discord programmieren lernen