Information Aus Zeichenfolgen in Java Extrahieren
Swipe um das Menü anzuzeigen
Bei der Arbeit mit Text in realen Anwendungen benötigt man selten den gesamten String – meistens nur einen kleinen Teil davon. Ein Name in einer E-Mail, ein Produkt in einer Bestellnachricht oder ein bestimmtes Schlüsselwort, das in einem Satz versteckt ist. Java stellt einfache, aber leistungsstarke Werkzeuge zur Verfügung, um genau das herauszufiltern, was benötigt wird.
substring()
Wenn ein "Ausschnitt" eines Strings anhand von Zeichenpositionen benötigt wird, verwendet man .substring(). Diese Methode basiert auf nullbasiertem Indexieren – das Zählen beginnt bei 0. Sie gibt einen neuen String zurück.
Main.java
123456789101112package com.example; public class Main { public static void main(String[] args) { String order = "Large Latte with oat milk"; String drinkName = order.substring(6, 11); System.out.println(drinkName); } }
substring(6, 11) weist Java an, bei Index 6 (inklusive) zu beginnen und direkt vor Index 11 (exklusive) zu stoppen — es werden die Zeichen an den Positionen 6 bis 10 extrahiert, was uns "Latte" ergibt.
Wenn du substring(start) mit nur einem Argument verwendest, extrahiert Java alles von dieser Position bis zum Ende des Strings:
order.substring(6); // "Latte with oat milk"
indexOf()
Wenn du herausfinden möchtest, an welcher Stelle sich ein bestimmter Text in einem String befindet, verwende .indexOf(). Anstatt Text zu schneiden, lokalisiert diese Methode ihn. Sie gibt einen int-Wert zurück, der den Startindex des Treffers angibt.
Main.java
123456789101112package com.example; public class Main { public static void main(String[] args) { String order = "Large Latte with oat milk"; int lattePosition = order.indexOf("Latte"); System.out.println(lattePosition); } }
Java durchsucht den String von links nach rechts, bis es "Latte" findet, und gibt die Position des ersten Zeichens zurück — 6. Wird der Text im String nicht gefunden, gibt Java -1 zurück.
Kombination beider Methoden — Praxisbeispiel
Dieses Praxisbeispiel kombiniert indexOf() und substring(), um einen Benutzernamen aus einer E-Mail-Adresse zu extrahieren.
Main.java
1234567891011121314package com.example; public class Main { public static void main(String[] args) { String customerEmail = "anna.coffee@gmail.com"; int atPosition = customerEmail.indexOf("@"); String username = customerEmail.substring(0, atPosition); System.out.println(username); } }
indexOf("@") findet die Position des @-Symbols, dann extrahiert substring(0, atPosition) alles vom Anfang des Strings bis — aber ohne — das @. Das Ergebnis ist "anna.coffee". Anstatt Positionen fest zu codieren, lassen wir Java die Grenze finden und genau das extrahieren, was wir benötigen.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen