Eingabe von Benutzer Filter machen.

Hallo,

ich versuche die Eingabe von Benutzer filter machen. ich habe fast alles gemacht . aber ich kann nicht für Dezimalzahlen filter machen. Kann man mit diesem code es auch filter machen aber ich möchte wissen wann hat benutzer DezimalZahl eingegeben und wann Buchstaben.
wie geht es möglich?
Java:
try {
                    String input = scannerVariable.next();
                    benutzer[userzahl] = Integer.parseInt(input);

                } catch (NumberFormatException e) {
                    dezimal = true;
                }
                for (int i = 0; i < userzahl; i++) {
                    if (benutzer[userzahl] == benutzer[i]) {
                        found = true;
                        break;
                    }
                }

                if (dezimal) {
                    System.out.println("Die Zahl passt nicht, weil sie eine Dezimalzahl ist.");
                } else if (benutzer[userzahl] > 49) {
                    System.out.println("Die Zahl passt nicht,weil sie größer als 49 ist.");
                } else if (benutzer[userzahl] <= 0) {
                    System.out.println("Die Zahl passt nicht, weil sie kleiner als 1 ist.");
                } else if (found) {
                    System.out.println("Sie haben diese Zahl schon gewählt.");
                } else {
                    userzahl++;
                    token++;
                }
            }
 
Zuletzt bearbeitet:
Was ist z. B. mit Satz- und Rechenzeichen, z. B. ".,-/*+(){}_§" usw.?
Mit diesem Code macht es Filter von Buchstaben und Rechenzeichen.
ich will, wenn Benutzer eine Deziemale Zahl eingegeben hat , irgendwie mit eine boolean Variable mir bescheid sage.

kannst du diese Code gucken und mir sagen wo habe ich falsch geschrieben und was soll ich schreiben.

Java:
scannerVariable.useLocale(Locale.US);
                    
try {
                    
                    scannerVariable.useLocale(Locale.US);
                    String input = scannerVariable.next();
                    benutzer[userzahl] = Integer.parseInt(input);
                    if (scannerVariable.hasNextDouble(input)) {
                        dezimal = true;
                        }
                } catch (NumberFormatException e) {
                    buchstabe = true;
                }

in (scannerVariable.hasNextDouble(input2)) habe ich Fehler.
 
Zuletzt bearbeitet:
Wie lautet die Fehlermeldung und wie sieht das Programm bis jetzt aus ?
Ausserdem sollte es wohl ein deutsches Programm werden (statt "Locale.US" also "Locale.DE" machen).
 
Wie lautet die Fehlermeldung und wie sieht das Programm bis jetzt aus ?
Ausserdem sollte es wohl ein deutsches Programm werden (statt "Locale.US" also "Locale.DE" machen).
jetzt mein programm bekommst zwei zahl in einmal. vor dem nexte runde if abfrage starten.

Java:
    while (userzahl < 6) {
                boolean found = false;
                boolean dezimal = false;
                boolean buchstabe = false;

                if (token == 1) {
                    System.out.println("Bitte geben Sie die erste Zahl ein:");
                } else if (token == 2) {
                    System.out.println("Bitte geben Sie die zweite Zahl ein:");
                } else if (token == 3) {
                    System.out.println("Bitte geben Sie die dritte Zahl ein:");
                } else if (token == 4) {
                    System.out.println("Bitte geben Sie die vierte Zahl ein:");
                } else if (token == 5) {
                    System.out.println("Bitte geben Sie die fünfte Zahl ein:");
                } else if (token == 6) {
                    System.out.println("Bitte geben Sie die sechste Zahl ein:");
                }
               

                scannerVariable.useLocale(Locale.US);
           
                try {
                   
                   
                    scannerVariable.useLocale(Locale.US);
                    String input = scannerVariable.next();
                    benutzer[userzahl] = Integer.parseInt(input);
                    if (scannerVariable.hasNextDouble()) {
                        dezimal = true;
                        }
                } catch (NumberFormatException e) {
                    buchstabe = true;
                }

                for (int i = 0; i < userzahl; i++) {
                    if (benutzer[userzahl] == benutzer[i]) {
                        found = true;
                        break;
                    }
                }

                if (buchstabe) {
                    System.out.println("Die Zahl passt nicht, weil sie eine Buchstabe oder falsche menge ist.");
                } else if (benutzer[userzahl] > 49) {
                    System.out.println("Die Zahl passt nicht,weil sie größer als 49 ist.");
                } else if (benutzer[userzahl] <= 0) {
                    System.out.println("Die Zahl passt nicht, weil sie kleiner als 1 ist.");
                } else if (found) {
                    System.out.println("Sie haben diese Zahl schon gewählt.");
                }else if (dezimal){
                    System.out.println("Die Zahl passt nicht, weil sie eine dezimalzahl ist.");
                }else {
                    userzahl++;
                    token++;
                }
            }
Ich will prüfen, ob die Eingabe von Benutzer Dezimale Zahl oder Buchstabe oder als ein Integer ist.
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben