Scanner error bei Eingabe die kein Integer ist

Jul1n4tor

Mitglied
Hallo zusammen,
ich schreibe gerade an einem Programm das sehr viel mit Scannern arbeitet. Das Programm fragt den Nutzer immer wieder nach Inputs ab, was das Programm als nächstes Machen soll.
Um diese Inputs einfach zu gestalten, habe ich immer mit einfachen Zahlen gearbeitet.
Ein Beispiel im Programm wäre:

Was möchten sie tun?
1 Aufzugssteureung
2 Attribute ausgeben
(User könnte hier seine Auswahl mit "1" oder "2" treffen)

Das Problem das mir natürlich jetzt aufgefallen ist, dass das Programm nichts anzufangen weiß mit z.b. ".1" oder "abcde".

Eine Idee wie das Einfach zu lösen ist?
Unten hab ich mal den gesammten Code angehängt, falls das Hilft.
vielen Dank schonmal im voraus!

-----

Java:
package Aufzugsteuerung;

import java.util.Scanner;

class Hauptprogramm {
    Scanner scannerE = new Scanner(System.in);

    public int Eingabe() {
        System.out.println("Was möchten sie tun?");
        System.out.println("1 Aufzug");
        System.out.println("2 Attribute");
        return scannerE.nextInt();
       
    }
}

public class Mainv2 {
    static Scanner scannerIN = new Scanner(System.in);

    public static void main(String[] args) {
        Hauptprogramm UserIn = new Hauptprogramm();

        int in = 0;
        while (in == 0) {
            in = UserIn.Eingabe();

        }
        Steuerung(in);
    }

    // Steuerung -> Programm-Auswahl Abfrage
    static void Steuerung(int Ein) {

        if (Ein == 1) {
            System.out.println("Welchen Aufzug?");
            AufArt(scannerIN.nextInt());

        }
        if (Ein == 2) {
            System.out.println("Attributen-Steuerung Ausgewählt");

        } else {
            System.out.println("leider falsch bitte neu");
            Steuerung(scannerIN.nextInt());

        }
    }

    // AufArt -> Welcher Aufzug?
    static void AufArt(int in1) {
        if (in1 == 1) {
            PS();
            PSA(scannerIN.nextInt());
            SWST(scannerIN.nextInt());
            Ende();

        }
        if (in1 == 2) {
            LS();
            LSA(scannerIN.nextInt());
            SWST(scannerIN.nextInt());
            Ende();

        }
        if (in1 == 3) {
            VS();
            VSP(scannerIN.nextInt());
            VSA(scannerIN.nextInt());
            SWST(scannerIN.nextInt());
            Ende();

        } else {
            System.out.println("leider falsch bitte neu");
            AufArt(scannerIN.nextInt());
        }

    }

    // PS -> Personen Aufzug abfrage.
    static void PS() {
        System.out.println("Personenaufzug. Wieviele Personen?");

    }

    // PSA -> Personen Anzahl
    static void PSA(int Anz) {
        if (Anz <= 30 && Anz > 15) {
            System.out.println(Anz + " Personen ausgewählt. Ein großer Personenaufzug wird sie fahren.");
            System.out.println("Von Wo soll der Aufzug losfahren?");

        } else {
            if (Anz <= 15 && Anz > 0) {
                System.out.println(Anz + " Personen ausgewählt. Ein kleiner Personenaufzug wird sie fahren.");
                System.out.println("Von Wo soll der Aufzug losfahren?");

            } else {
                System.out.println("leider falsch bitte neu");
                PSA(scannerIN.nextInt());

            }
        }
    }

    // LS -> Lasten Aufzug abfrage.
    static void LS() {
        System.out.println("Lastenaufzug. Wieviel KG Last?");

    }

    // LSA -> Lasten Menge
    static void LSA(int Anz) {
        if (Anz <= 10000 && Anz > 5000) {
            System.out.println(Anz + " KG ausgewählt. Ein großer Lastenaufzug wird sie fahren.");
            System.out.println("Von Wo soll der Aufzug losfahren?");

        }
        if (Anz <= 5000 && Anz > 0) {
            System.out.println(Anz + " KG ausgewählt. Ein kleiner Lastenaufzug wird sie fahren.");
            System.out.println("Von Wo soll der Aufzug losfahren?");

        } else {
            System.out.println("leider falsch bitte neu");
            LSA(scannerIN.nextInt());

        }
    }

    // VS -> VIP-Aufzug abfrage.
    static void VS() {
        System.out.println("VIP-Aufzug. Bitte geben sie nun das Passwort ein: (Tipp: 1234)");

    }

    // VSP -> Passwort abfrage.
    static void VSP(int PW) {
        if (PW == 1234) {
            System.out.println("Passwort Korrekt! Wie viele Personen fahren in diesem Aufzug?");
           
        } else {
            System.out.println("leider falsch bitte neu");
            VSP(scannerIN.nextInt());

        }
    }

    // VSA -> VIP-Aufzug Personen Anzahl
    static void VSA(int Anz) {
        if (Anz <= 5 && Anz > 0) {
            System.out.println(Anz + " Personen wurden ausgewählt.");
            System.out.println("Von Wo soll der Aufzug losfahren?");

        } else {
            System.out.println("leider falsch bitte neu");
            VSA(scannerIN.nextInt());

        }
    }

    // SWST -> Stockwerk Start
    static void SWST(int Start) {
        if (Start < 100 && Start >= 0) {
            System.out.println(
                    "Der Aufzug wird vom " + Start + ". Losfahren. In welches Stockwerk soll die Fahrt gehen?");
            SWSP(Start, scannerIN.nextInt());

        } else {
            System.out.println("Dieses Stockwerk existiert nicht. Bitte erneut eingeben!");
            SWST(scannerIN.nextInt());

        }
    }

    // SWSP -> Stockwerk Stopp
    static void SWSP(int Start, int Stopp) {
        if (Stopp < 100 && Stopp >= 0) {
            if (Start == Stopp) {
                System.out.println("Start und Stopp sind gleich!");
                SWSP(Start, scannerIN.nextInt());

            } else {

                System.out.println(
                        "Der Aufzug wird vom " + Start + ". Stock bis zum " + Stopp + ". Stock Fahren. Gute Fahrt!");
            }

        } else {
            System.out.println("Dieses Stockwerk existiert nicht. Bitte erneut eingeben!");
            SWSP(Start, scannerIN.nextInt());

        }
    }

    // Ende -> Abschluss Abfrage
    static void Ende() {
        System.out.println("-----");
        System.out.println("1: Zurück zu Programm Auswahl " + "2: Programm beenden");
        System.out.println("-----");
        int A = scannerIN.nextInt();
        if (A == 1) {
            System.out.println("Was möchten sie tun?");
            System.out.println("1 Aufzug");
            System.out.println("2 Attribute");
            Steuerung(scannerIN.nextInt());
        }
        if (A == 2) {
            System.exit(0);
        } else {
            System.out.println("Das ist keine Auswahl.");
            Ende();
        }
    }
    /*
     * Log Funktion mit case/if statements. Checkt die Eingaben
     *
     * schreibeInLog (int AufzugArt, int PersAnz, int StartStock, int StoppStock) {
     * Case 1 : PersonenAufzug }
     *
     */
}
 

KonradN

Super-Moderator
Mitarbeiter
Die Idee wäre ja, erst zu prüfen, ob ein int zur Verfügung steht. Dazu hat Scanner die Methode hasNextInt()
-> wenn da true raus kommt, kannst Du mittels nextInt() die Zahl lesen.
-> wenn da false raus kommt dann musst du das dem User mitteilen - und die Eingabe musst du entfernen. Das ginge z.B. mit nextLine()
 

Jul1n4tor

Mitglied
Eine Idee wie ich das dann umsetzen könnte?
Muss ich das dann in alle meine Methoden mit einfügen oder gibt es auch eine Möglichkeit das Global zu überprüfen?

Also zum Beispiel direkt die System.in auf integer zu überprüfen.
 

KonradN

Super-Moderator
Mitarbeiter
Das übliche Vorgehen ist, dazu eine Methode zu schreiben. Wenn Du eine Methode hast, die genau das macht, dann ersetzt Du einfach alle nextInt() Aufrufe mit einem entsprechenden Aufruf.

Dazu noch evtl. eine kleine Information:
  • Klassen fangen mit einem großen Buchstaben an.
  • Methoden und Variablen fangen mit einem kleinen Buchstaben an.
  • Methoden sollten ein Verb beinhalten und sagen, was diese machen.
  • Wenn möglich, Abkürzungen vermeiden.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Scanner-Error Java Basics - Anfänger-Themen 8
TheMenox Error bei Scanner - woher? Java Basics - Anfänger-Themen 14
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
M Scanner Input mit if überprüfen Java Basics - Anfänger-Themen 5
D Scanner Java Basics - Anfänger-Themen 2
T scanner nicht erkannt Java Basics - Anfänger-Themen 3
T scanner eingaben erkennen und umtauschen Java Basics - Anfänger-Themen 4
Ostkreuz Int Scanner auf Enter Eingabe prüfen Java Basics - Anfänger-Themen 4
H Scanner nextLine() bringt Dateipfad Java Basics - Anfänger-Themen 1
Jul1n4tor Programm mit Scanner und If-Statements Java Basics - Anfänger-Themen 2
I Scanner Loop Java Basics - Anfänger-Themen 1
J Scanner cannot be resolved to a type Java Basics - Anfänger-Themen 3
C Scanner und If-Anweisung in Kombi Java Basics - Anfänger-Themen 3
X Erste Schritte Scanner eingabe wird übersprungen Java Basics - Anfänger-Themen 4
T j.u.Scanner(Sys.in).nextLine() wieder schließen? Java Basics - Anfänger-Themen 5
J Erste Schritte Scanner Java Basics - Anfänger-Themen 4
P Mit dem Scanner Klassen aufrufen Java Basics - Anfänger-Themen 3
javapingu Endlosschleife bei User Input mit try Scanner Java Basics - Anfänger-Themen 7
C Problem mit mehreren Methoden + Scanner Java Basics - Anfänger-Themen 5
Poppigescorn Arrayliste Mittels Scanner erweitern Java Basics - Anfänger-Themen 6
Jan_x8 Timer/Scanner Java Basics - Anfänger-Themen 5
M Scanner Klasse Java Basics - Anfänger-Themen 4
W Objekte über Scanner Input; ToString Probleme... Java Basics - Anfänger-Themen 4
F Erste Schritte java.util.Scanner: Beliebig langen Text per Paste in Console eingeben ? Java Basics - Anfänger-Themen 14
H Quellcode Scanner Klasse Java Basics - Anfänger-Themen 2
N java.util.InputMismatchException Fehler Java Scanner Java Basics - Anfänger-Themen 5
S Scanner soll Groß-/ Kleinschreibung ignorieren Java Basics - Anfänger-Themen 2
Y Wie kann ich Konsoleneingaben durch den Scanner mit JUnit 4 testen? Java Basics - Anfänger-Themen 1
J Scanner-Klasse Java Basics - Anfänger-Themen 2
B Scanner-If/else kleine Abhebungs-Simulation Java Basics - Anfänger-Themen 3
A Scanner Befehl Java Anfänger Java Basics - Anfänger-Themen 8
D Scanner- Exception NoSuchElementException Java Basics - Anfänger-Themen 2
G Scanner nutzen und Index auslesen Java Basics - Anfänger-Themen 8
N Problem mit Scanner Java Basics - Anfänger-Themen 2
V Ersätze für Java-Scanner Java Basics - Anfänger-Themen 9
P Methode die eigentlich einen Scanner benötigt mit toString() Java Basics - Anfänger-Themen 5
D Java Scanner Java Basics - Anfänger-Themen 9
M String in Scanner einlesen Java Basics - Anfänger-Themen 6
N Eingabe Kommazahlen über Scanner Java Basics - Anfänger-Themen 2
ZH1896ZH Verstehe verschieden Scanner und hasNext() nicht ganz Java Basics - Anfänger-Themen 2
O Mehrfache Scanner-Eingabe durch Komma getrennt Java Basics - Anfänger-Themen 6
I Scanner auf 10 Stellen begrenzt? Java Basics - Anfänger-Themen 5
B Barcode Scanner Java Basics - Anfänger-Themen 3
V Wie lasse ich die for-Schleife so oft laufen wie per Scanner angegeben? Java Basics - Anfänger-Themen 3
L Scanner schließen in While-Schleife? Java Basics - Anfänger-Themen 2
S Scanner Java Basics - Anfänger-Themen 36
S Frage zu Scanner Java Basics - Anfänger-Themen 3
cpt.Tomato Scanner problem mit Passwort Login Java Basics - Anfänger-Themen 3
O Scanner Klasse Java Basics - Anfänger-Themen 8
M java.util.scanner Fehler Java Basics - Anfänger-Themen 5
B mehrere Werte mit scanner und while schleife einlesen, max berechnen bzw addieren Java Basics - Anfänger-Themen 2
W Eclipse Che Scanner Java Basics - Anfänger-Themen 8
H Vererbung Static Scanner Objekt verwenden - von StdIn in einer importierten Klasse lesen Java Basics - Anfänger-Themen 10
X Erste Schritte Problem mit scanner Java Basics - Anfänger-Themen 2
A Scanner.useLocale(Locale.US); Java Basics - Anfänger-Themen 4
M Datei einlesen mit Scanner funktioniert nicht (FileNotFoundException) Java Basics - Anfänger-Themen 6
I Scanner und Arrays Java Basics - Anfänger-Themen 2
M Scanner-Eingabe nach gewissem Zeitraum überprüfen Java Basics - Anfänger-Themen 2
Neoline Methoden Scanner Methode Java Basics - Anfänger-Themen 9
E Probleme mit Scanner Java Basics - Anfänger-Themen 4
A Java Scanner Funktioniert nicht Java Basics - Anfänger-Themen 2
B Vom scanner in ein Arraylist Java Basics - Anfänger-Themen 7
L Scanner Ausgabe Java Basics - Anfänger-Themen 37
S Zeilenumbruch mit Scanner erkennen Java Basics - Anfänger-Themen 9
O Erste Schritte Scanner mehrere male benutzen (Konsole) Java Basics - Anfänger-Themen 7
W Wie arbeite ich mit dem Typ Scanner? Java Basics - Anfänger-Themen 5
J Input/Output Scanner Input als etwas einsetzen Java Basics - Anfänger-Themen 3
R CMDTools Scanner Fehler Java Basics - Anfänger-Themen 10
D nextInt() nicht für Scanner definiert? Java Basics - Anfänger-Themen 2
N Operatoren Suchen nach einer bestimmten Eingabe (durch Scanner) Java Basics - Anfänger-Themen 7
F Scanner Problem Java Basics - Anfänger-Themen 8
T Variablen Array mit Scanner befüllen Java Basics - Anfänger-Themen 6
C Java Scanner einlesen von txt Dokument InputMismatch Java Basics - Anfänger-Themen 9
b1ck Scanner schließen, erneute Verwendung Java Basics - Anfänger-Themen 12
F Scanner - nextLine() gibt leeren String zurück Java Basics - Anfänger-Themen 2
T Problem mit Scanner. Java Basics - Anfänger-Themen 4
J Methode über Scanner aufrufen Java Basics - Anfänger-Themen 15
J Erste Schritte Scanner negative zahl einlesen und verwenden. Java Basics - Anfänger-Themen 6
W Methoden Probleme mit der Scanner Methode Java Basics - Anfänger-Themen 2
Silvascus Scanner Problem Java Basics - Anfänger-Themen 5
W Erste Schritte import java.util.scanner funktioniert nicht Java Basics - Anfänger-Themen 2
D Fehler bei String eingabe via Scanner Java Basics - Anfänger-Themen 6
F Problem do while Schleife und Scanner Java Basics - Anfänger-Themen 2
O POI Apache sheet scanner Java Basics - Anfänger-Themen 1
A regulären Ausdruck mit Hilfe der Klasse Scanner in einem String finden Java Basics - Anfänger-Themen 2
F Array mit Scanner-Werten Java Basics - Anfänger-Themen 4
M Input/Output Scanner schließt nicht Java Basics - Anfänger-Themen 2
M Scanner class Java Basics - Anfänger-Themen 6
K Mit Scanner aus einer txt Datei lesen und jede Person mit name, vorname, geburtsdatum speichern Java Basics - Anfänger-Themen 5
S Array mit "foreach"-Schleife und nextInt (aus Scanner) beschreiben Java Basics - Anfänger-Themen 6
G Strings mit Scanner (nextLine) einlesen Java Basics - Anfänger-Themen 7
Q Scanner auf eine Zahl beschränken Java Basics - Anfänger-Themen 2
S Sonderzeichen '|' (u007C) mit Scanner einlesen Java Basics - Anfänger-Themen 1
T Scanner lässt sich nicht importieren Java Basics - Anfänger-Themen 1
R scanner in String funktioniert nicht Java Basics - Anfänger-Themen 1
P scanner ein Double einlesen Java Basics - Anfänger-Themen 10
A InputMismatchException mit Scanner Java Basics - Anfänger-Themen 6
J scanner, String einlesen und vergleichen Java Basics - Anfänger-Themen 3
B Input/Output Scanner-Probleme bei String-Lesen Java Basics - Anfänger-Themen 3
P Variablen Abfangen von eingaben per java.util.Scanner und weiter Verarbeitung Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben