Java Scanner Eingabe Sonderzeichen ignorieren?
Hallo zusammen,
ich habe folgendes Problem.
Ich speicher meine Scanner Eingabe direkt als String.
Bevor der String an meine nächste Methode weitergegeben wird muss ich falls meine String Eingabe: Großschreibung, Bindezeichen, Punkt, Komma usw. enthält ignorieren.
sogesehen sollte zb.
aus meiner Eingabe:
String a = h A l L ! o
String b = hallo
resultieren.
Hat hierfür jemand einen Lösungsvorschlag?
Vielen Dank vorab :)
3 Antworten
Gehe mit einer Schleife zeichenweise durch deinen String. Je Zeichen (char) kannst du prüfen, ob es sich im richtigen Wertebereich (siehe ASCII-Tabelle) befindet und bei Großbuchstaben zum Kleinbuchstaben aufaddieren.
Vergiss nicht: Die numerische Repräsentation eines Zeichens in der ASCII-Tabelle bekommst du leicht durch einen Typecast.
char letter = 'a';
int numericRepresentation = (int)letter;
System.out.println(numericRepresentation); // 97
Ein Regulärer Ausdruck könnte dir alle Buchstaben filtern und anschliessend verwendest du eine LowerCase Funtion. Mit Java hab ich es nicht aber so wirds gemacht.
Oh, selbe Idee wie ich haha.
Und in Java geht's so, falls es dich interessiert:
String input = "2g4Eh81e`*i42M";
input = (input.replaceAll("[^ a-zA-Z]","")).toLowerCase();
Das geht am einfachsten mit regulären Ausdrücken und der Methode toLowerCase.
Hier der Code:
String oldInput = deinScanner.next();
String input = (oldInput.replaceAll("[^ a-zA-Z]","")).toLowerCase();