Regular expressions

  • Themenstarter Themenstarter Guest
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

blicke jezt nicht durch warum das gerade nicht funktioniert, wenn ich folgednes erreichen will.

Code:
String zeichen = "3";  // Der String kann sich ändern in z.B. "123" o " " o "12345" etc

//nun will eine Meldung haben, wenn der String ein Zeichen erhält.
if (zeichen.matches("[0-9]")){
		System.out.println("Ein Zeichen beinhaltet die String Variable");
}

Es wird aber nciht in die if-Schleife gesprungen...
 
Hi,

der String enthält ein (beliebiges) Zeichen, wenn dessen Länge ungleich Null ist.

Code:
String s1 = new String("Hallo Welt");
String s2 = new String();
System.out.println( s1.length()+"   "+s2.length() );

Sollte die Bedingung als reg Ausdruck realsiert werden, so gehts auf zwei Wegen:

Code:
if (zeichen.matches("[0-9]{1,}")) { //... }

bzw.

Code:
if (zeichen.matches("[0-9]+")) { //... }

Gruß Micha
 
Hi,

Danke für die Antworten.. Ich muss zugeben, ich habe das entscheidende nicht deutlich dargestellt.. Sobald z.B. der String mehr als 1 Zeichen (z.B."3443") oder gar nichts enthält, soll die if-Schleife nicht mehr ausgeführt werden.
Da kann ich aber auch in der api nichts geeignetes finden...
 
;-) Da hast du recht.. Gut aufgepasst.

Ein Lsg habe ich auch gefundne.. Gehen müsste eigentlich "[0-9]{1,1}?"
 
Ja, das dürfte funkionieren. Btw. kannst du für decimals auch \d benutzen: \d{1}
(Wenn du es im Code benutzt, musst du den backslash escapen: "\\d{1}")
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben