Appearance
Kapitel 13: String Klasse
🎯 Lernziele
- String Grundlagen
- Häufige String-Methoden (Länge, Suchen, Ersetzen, Teilen)
- StringBuffer & StringBuilder
- String Übungsaufgaben
13.1 String Grundlagen
📝 Was ist String?
String = Text (Folge von Zeichen). In Java ist String eine Klasse, keine primitive Datentyp!
🔧 String erstellen
java
// Methode 1: String-Literal (empfohlen)
String s1 = "Hallo Welt!";
// Methode 2: new String()
String s2 = new String("Hallo Welt!");⚠️ Wichtig: Strings sind unveränderlich (Immutable)!
java
String s = "Hallo";
s = s + " Welt!"; // Neues String-Objekt wird erstellt!
System.out.println(s); // "Hallo Welt!"→ Original-String bleibt unverändert!
13.2 String häufige Methoden
| Methode | Beschreibung | Beispiel |
|---|---|---|
length() | Länge des Strings | "Hallo".length() → 5 |
charAt(index) | Zeichen an Position | "Hallo".charAt(0) → 'H' |
substring(start, end) | Teilstring extrahieren | "Hallo".substring(1,4) → "all" |
contains(seq) | Enthält Teilstring? | "Hallo".contains("all") → true |
indexOf(seq) | Index von Teilstring | "Hallo".indexOf("ll") → 2 |
replace(old, new) | Ersetzen | "Hallo".replace("H","B") → "Ballo" |
toUpperCase() | Großschreibung | "Hallo".toUpperCase() → "HALLO" |
toLowerCase() | Kleinschreibung | "Hallo".toLowerCase() → "hallo" |
trim() | Leerzeichen entfernen | " Hallo ".trim() → "Hallo" |
split(regex) | String teilen | "a,b,c".split(",") → {"a","b","c"} |
equals(other) | Vergleichen (Inhalt) | s1.equals(s2) |
== | Vergleichen (Referenz) | s1 == s2 (Achtung!) |
📋 Beispiel: Häufige String-Methoden
java
public class StringBeispiel {
public static void main(String[] args) {
String s = " Hallo Welt! ";
System.out.println("Länge: " + s.length()); // 16
System.out.println("Groß: " + s.trim().toUpperCase()); // HALL WELT!
System.out.println("Enthält 'Welt'? " + s.contains("Welt")); // true
System.out.println("Ersetzen: " + s.replace("Welt","Java")); // " Hallo Java! "
String[] wörter = s.trim().split(" ");
for (String w : wörter) {
System.out.println(w); // "Hallo", "Welt!"
}
}
}⚠️ Achtung: equals() vs. ==!
java
String s1 = new String("Hallo");
String s2 = new String("Hallo");
System.out.println(s1 == s2); // false! (Referenz-Vergleich)
System.out.println(s1.equals(s2)); // true! (Inhalts-Vergleich)→ Immer equals() für String-Vergleich verwenden!
13.3 StringBuffer & StringBuilder
🔄 Problem: String ist unveränderlich (ineffizient bei vielen Änderungen)
java
String s = "Hallo";
for (int i = 0; i < 10000; i++) {
s += i; // Jedes Mal neues String-Objekt → Langsam!
}✅ Lösung: StringBuilder (schneller, nicht thread-safe)
java
StringBuilder sb = new StringBuilder("Hallo");
for (int i = 0; i < 10000; i++) {
sb.append(i); // Ändert existierendes Objekt → Schnell!
}
String ergebnis = sb.toString();🔢 StringBuffer vs. StringBuilder
| Klasse | Thread-safe? | Geschwindigkeit |
|---|---|---|
StringBuffer | ✅ Ja (synchronisiert) | Langsamer |
StringBuilder | ❌ Nein | Schneller (empfohlen!) |
📋 Beispiel: StringBuilder
java
public class StringBuilderBeispiel {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
sb.append("Hallo");
sb.append(" ");
sb.append("Welt!");
sb.insert(5, " schöne"); // Bei Index 5 einfügen
sb.delete(5, 12); // Zeichen 5-11 löschen
System.out.println(sb.toString()); // "Hallo Welt!"
}
}13.4 String Übungsaufgaben
🏋️ Übung 1: Palindrom überprüfen
Aufgabe: Prüfe, ob ein String ein Palindrom ist (vorwärts & rückwärts gleich).
Lösung:
java
public class Palindrom {
public static void main(String[] args) {
String s = "Anna";
String umgekehrt = new StringBuilder(s.toLowerCase()).reverse().toString();
if (s.toLowerCase().equals(umgekehrt)) {
System.out.println(s + " ist ein Palindrom!");
} else {
System.out.println(s + " ist kein Palindrom!");
}
}
}🏋️ Übung 2: Zeichen zählen
Aufgabe: Zähle, wie oft der Buchstabe 'a' in einem String vorkommt.
Lösung:
java
public class ZeichenZaehlen {
public static void main(String[] args) {
String s = "Hallo Welt! Anna";
int count = 0;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == 'a' || s.charAt(i) == 'A') {
count++;
}
}
System.out.println("'a'/'A' kommt " + count + " mal vor."); // 3
}
}📝 Zusammenfassung
In diesem Kapitel hast du gelernt:
- ✅ String = Text (unveränderlich!)
- ✅ Häufige Methoden:
length(),charAt(),substring(),contains(),indexOf(),replace(),split(),equals() - ✅
StringBuilderfür effiziente String-Änderungen - ✅
equals()für String-Vergleich (nicht==!)
💡 Merksatz für Anfänger
"Strings sind unveränderlich! Nutze
StringBuilderfür viele Änderungen. Vergleiche Strings mitequals(), nicht==!"
🎯 Nächste Schritte
Im nächsten Kapitel lernst du:
- Collection Framework (Einstieg) (Kapitel 14)
- Was sind Collections? Unterschied zu Arrays
ArrayListverwenden- Häufige Collection-Methoden
Bereit für Collections? Los geht's! 🚀
📚 Weiterführende Links:
💬 Fragen?
Hinterlassen Sie einen Kommentar!
