Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ich möchte bei einem unbekannten String abfragen ob es ein Wort,eine Zahl oder ein Sonderzeichen ist ,weis aber nicht wie ich das abfragen soll. Gibts das schon fertige Methoden oder muss ich mir das selber schreiben?
Hab mir Pattern ein wenig angesehen aber irgendwie bekomm ich es nicht hin
Ich will in dem String abfragen ob a-z,A-Z,0-9,3 Punkte und 7 Strichpunkte vorhanden sind,
dannach will ich den String mit StringTokenizer aufteilen und einzeln vergleichen.
Code:
Pattern p = Pattern.compile("?????");
Matcher m = p.matcher("1089;Michael;MUSTERMANN;M;18.05.1989;1;2.54;0");
boolean b = m.matches();
erst eine Gruppe von vier Ziffern, dann ein Semikolon
ein Wort bestehend aus einem Großbuchstaben A-Z und mindestens einem Kleinbuchstaben a-z, gefolgt von einem Semikolon
mindestens ein Großbuchstanbe A-Z gefolgt von einem Semikolon
ein Datum bestehend aus zweimal zwei und einmal vier Ziffern 0-9, getrennt durch Punkte, gefolgt von einem Semikolon
eine Ziffer 0-9 gefolgt von einem Semikolon
mindestens eine Ziffer 0-9 gefolgt von einem Punkt und 0..unendlich vielen weiteren Ziffern, abgeschlossen durch ein Semikolon
eine Ziffer 0-9
Zeilenumbrüche sind nicht erlaubt, möglicherweise muß man die Prüfung für deine Daten an der einen oder anderen Stelle weiter oder enger fassen, dass hängt von der fachlichen Bedeutung der String-Bestandteile ab.
Pattern p = Pattern.compile("(\\d+);(\\w+);(\\w+);(\\w);((?:\\d\\d\\.){2}\\d{4});(\\d+);(\\d+(?:\\.\\d*)?);(\\d+)");
Matcher m = p.matcher("1089;Michael;MUSTERMANN;M;18.05.1989;1;2.54;0");
boolean b = m.matches();
for (int i = 1; i <= m.groupCount(); i++) {
System.out.println(i + ": " + m.group(i));
}
System.out.println(b);
Ausgabe:
1: 1089
2: Michael
3: MUSTERMANN
4: M
5: 18.05.1989
6: 1
7: 2.54
8: 0
true
edit: war Tobias wohl schneller
Wenn man aber schon eine regex zur Überprüfung benutzt, dann kannst du auf deinen Plan mit dem Tokenizer gleich verzichten und direkt die Teile aus der regex nehmen.