Hallo,
ich hab folgendes Problem.
Ich bekomme einen String geliefert, der sowohl Buchstaben (Wörter) als auch Zahlen enthält. Nun muss ich irgendwie aus diesem String die Zahl(en) herauskriegen. Hat einer ne Idee, wie man das am besten machen kann? Mit parsen ist hier halt nicht viel, weil der String ja nicht nur aus ner Zahl besteht. Gibts da irgendwelche funktionen, mit der man einen String dahingehend untersuchen kann??
Schonmal Danke für eure Hilfe!
Grüße, Alex
Moin
Hat einer ne Idee,
wie man das am besten machen kann? Mit parsen ist hier halt
nicht viel, weil der String ja nicht nur aus ner Zahl besteht.
Steht die Zahl frei ? Also sind sicher Leerzeichen drum rum ? z.B. so:
„wort wort 12323 wort wort“
Dann ist es einfach:
StringTokenzier ST = new StringTokenzier (string);
int temp = -1;
while (ST.hasMoreElements()){
try {
temp = Integer.parse (ST.nextToken());
//Das war die Zahl
} catch (Exception E){
//Das war sie nicht
}
}
Gibts da irgendwelche funktionen, mit der man einen String
dahingehend untersuchen kann??
Du kannst auch eine regex drüberholzen lassen. Müsste mit dem Ausdruck .*(\d\d*).* gehen. Allerdings fällt das das Vorzeichen flach.
cu
Danke, werds mal ausprobieren. Müsste eigentlich funktionieren mit den Strings die ich bekommen…
Alex
Danke, werds mal ausprobieren. Müsste eigentlich funktionieren
mit den Strings die ich bekommen…
Hastest du nicht noch eine Antwort geschrieben ?
Kuck dir mal in der API-doc „java.util.regex.Pattern“ an. Das Codebeispiel triffst schon fast. Die Aufrufe
matcher.find();
String Zahl = matcher.group();
machen den Rest.
cu
Hastest du nicht noch eine Antwort geschrieben ?
Ja hab ich, hab ich aber wieder gelöscht.
Das tool muss auf nem Server laufen, wo ich nicht Admin bin und da waren bisher nur die Java Runtimes 1.3 drauf. Da gibts ja keine RegEx, von daher hab ichs gelassen. Mitlerweile hab ich auch die 1.4 drauf gefunden, also kann ich ja die RegEx nutzen.
Kuck dir mal in der API-doc „java.util.regex.Pattern“ an. Das
Codebeispiel triffst schon fast. Die Aufrufe
matcher.find();
String Zahl = matcher.group();
machen den Rest.
cu
Hab ich gemacht. Scheint ne gute Sache zu sein das.
Danke für die Tipps.
Alex