Variablen String auf ungültige Zeichen überprüfen

m0n4ch

Mitglied
Hallo,
ich möchte gerne einen String überprüfen, ob er andere Zeichen als I, V, X, L, C, D, M enthält.
Man könnte das jetzt umständlich mit mehreren if-abfragen machen, aber vielleicht gibt es ja eine weniger umständliche Methode.
Vielen Dank schon im vorraus 🙂
 
Ohne Erklärung dieses regulären Ausdrucks ist ein Anfänger der zudem noch nicht mal weiss was ein regulärer Ausdruck ist, hoffnungslos überfordert.
Da hast Du sicher Recht, obwohl "neues Mitglied" ja nicht zwingend "Anfänger" bedeuten müsste ....
Aber die Links sollten helfen, sich in das Thema reinzufuchsen 🙂

Gruß Klaus
 
Aber es klappt 😀
Die Buchstaben müssen nicht zwingend vorkommen, wenn aber, dann nicht mehr als 3 hintereinander.
Habe das jetzt wie folgt geschrieben:

if(Pattern.matches("[IVXLCDM]{0,3}?", romanNumber)){
System.out.println("valide");
}else{
System.out.println("Bitte einen der gueltigen Roemischen Buchstaben eingeben I, V, X, L, C, D, M");
throw new InvalidCharacterError();
}

Ich guck mal ob ich mit der Lösung von stg noch was verbessern kann 🙂
Vielen Dank für eure Hilfe 😀
 
obwohl "neues Mitglied" ja nicht zwingend "Anfänger" bedeuten müsste
Nein, das nicht aber die Frage: "kannst du mir erklären was du da geschrieben hast" zeigt dass er nicht wusste was er damit anfangen soll. Aber mit den Links konnte er sicher rausfinden wie er den Ausdruck verwenden muss. 😉😉 auch wenn er den Ausdruck selber noch nicht verstanden hat. Aber vielleicht hat er auch. 😉😉
 
Java:
if (Pattern.matches("[IVXLCDM]{0,3}?", romanNumber)){
   System.out.println("valide");
} else {
   System.out.println("Bitte einen der gueltigen Roemischen Buchstaben eingeben I, V, X, L, C, D, M");
   throw new InvalidCharacterError();
}
Das ist aber wahrscheinlich noch nicht das, was du erreichen möchtest, denn beispielsweise "CLXI" wäre ungültig.
 
Code:
\bM{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})\b
Könnt ihr mir das trotzdem nochmal erklären? 😀
Habe mal die ganzen Tutorials durchgearbeitet die ihr verlinkt habt, aber so ganz durchblicken tu ich immer noch nicht ^^
 
Was genau verstehst du daran nicht?
In dem schon verlinkten Artikel auf http://www.tutorialspoint.com/java/java_regular_expressions.htm hast du eine Übersicht über die Syntax. Nimmt man sich die zur Hand ist der Ausdruck eigentlich selbsterklärend.
Lass dich von der Länge des Ausdrucks nicht "erschlagen", sondern versuche das ganze einfache Stück für Stück zu lesen und zu begreifen...

Der Ausdruck soll im Übrigen prüfen, ob ein "Wort" eine gültige römische Zahl ist. Wenn man das im Hinterkopf hat (und selbst auch weiß, wann ein Wort eine gültige rämische Zahl ist), dann sollte das einem die Sache noch mal erleichtern 🙂
 

Neue Themen


Zurück
Oben