Java String parsen

Helios co.

Lt. Commander
Registriert
März 2005
Beiträge
1.863
Hallo @all,

höchstwahrscheinlich habe ich mir zur Lösung meiner Frage die Java Doc intensiver anschauen müssen, doch habe ich auf Anhieb nichts passendes für mein Problem gefunden.

Und zwar möchte ich aus einem String einen Substring extrahieren. In der Doc habe ich zwar gesehen, dass es Methoden gibt, bei denen man Start-und Endindex angeben kann. Das geht bei mir nicht, da dieser variieren kann.

Interessant wären für mich jedoch 2 reguläre Ausdrücke als Start und Ende.
Beispiel für den String.
x(1 ,2,4 ,56 ,6, 4, 5, 6) y(1,2,3,4,5,6)

ich will nur den Teil zwischen x und y. Gibt es eine Methode, welche das kann? Notfalls müsste ich mir selbst eine schreiben, was ich jedoch ungerne tun würde.

Thx
 
also die positionen bekommst du einfach mit indexOf, oder du nimmst lastIndexOf, je nachdem was du brauchst. Reguläre ausdrücke kannst du mit str.match(); machen so weit ich das noch weiß

int pos1x = str.indexOf("x(");
int pos2x = str.indexOf(")");

int pos1y = str.indexOf("y(");
int pos2y = str.lastIndexOf(")");
 
Perfekt. Genau das habe ich gebraucht! Vielen Dank!

Doch zugleich eine weitere Frage: Und zwar kann man aus einem String alle Zahlen oder alle Buchstaben entfernen?

Um alle Zahlen zu entfernen, könnte ich theoretisch ein Array mit Zahlen von 0..9 definierenund bei jedem Zeichen im String überprüfen, ob es aus diesem Array ist und es dann löschen. Recht umständlich. Gibt es da etwas eleganteres?
 
Hallo

Als erstes sollte man immer Wissen, mit welcher Version er arbeitet.
Ist ja nicht gesagt, dass er in Zeiten von Java 6 noch mit 1.4.2 arbeitet.

Zu deinem Problem:
Regular Expressions (Reguläre Ausdrücke) auch Regex genannt, sollten dir weiterhelfen.

Sun's Java Tutorial für Regex (Englisch):
Regex Tutorial

Regex Package in Java 6:
Regex Package
Pattern Klasse
Matcher Klasse

Gruss
Nobody
 
Als erstes sollte man immer Wissen, mit welcher Version er arbeitet.
Ist ja nicht gesagt, dass er in Zeiten von Java 6 noch mit 1.4.2 arbeitet
Und? Die genannte Funktion gibts in Java 6 noch immer (so wie eigtl. fast alles abwärtskompatibel ist): http://java.sun.com/javase/6/docs/a...eplaceAll(java.lang.String, java.lang.String) und ist letztlich eine Vereinfachung der ganzen Pattern- und Matchergeschichte wie du ja an der Funktionsbeschreibung siehst. Funktionen aus älteren Versionen sind zudem vorteilhaft da es selbst heute noch nicht auf allen Plattformen Java 6 gibt (wobei es Pattern und die entsprechenden Klassen natürlich auch schon länger gibt; so etwa ab 1.4)...
 
Zuletzt bearbeitet:
Zurück
Oben