In Konsole darf nichts falsches eingetippt werden?!

testen1t7

Mitglied
nabend,
ich schreibe gerade ein programm und will es verfeinern. also exception handling ist das sitchwort. ich habe einen scanner in den eine positive zahl eingegeben werden soll. allerdings kann man in der praxis in die konsole alle zeichen und buchstaben auch eingeben ohne das ein error kommt. das programm hört dann einfach auf zu laufen und ich muss es neu starten. wie kann ich das realisieren, dass dem nutzer eine fehlermeldung ausgegeben wird, da ja eigenltich nicht einmal ein error in der konsole angezeigt wird? mit einer do while schleife um die exception kann ich ja einfach das programm "neustarten" lassen, das sollte kein problem sein, nur die exception.

der scanner liest mit .nextInt() ein. habe das buffered ding auch versucht aber da komm ich genau so wenig weiter :)

ich hoffe jemand hat eine idee, habe leider im netz nicht wirklich was dazu gefunden was ich verstanden habe :/
 

VfL_Freak

Top Contributor
Moin und Willkommen im Forum :)

zuerst ein grundsätzliches Ding, da man von Deinem Text ja Augenkrebs bekommt :confused:
Schreibe bitte nicht (fast) ohne Punkt und Komma, nicht alles ohne Absatz direkt hintereinander und vor allem: Großbuchstaben am Wortanfang sind nicht zum Spaß da !!
Wenn Du den Text leserlich formatiert schreibst, erhöhst Du die Chance auf eine Antwort ungemein !!

Zu dem solltest Du auch den relevanten Code posten (bitte mit Code-Tags, siehe meine Signatur) !!
Rumraten möchte hier keiner ... :rolleyes:

Gruß Klaus
 

testen1t7

Mitglied
Moin und Willkommen im Forum :)

zuerst ein grundsätzliches Ding, da man von Deinem Text ja Augenkrebs bekommt :confused:
Schreibe bitte nicht (fast) ohne Punkt und Komma, nicht alles ohne Absatz direkt hintereinander und vor allem: Großbuchstaben am Wortanfang sind nicht zum Spaß da !!
Wenn Du den Text leserlich formatiert schreibst, erhöhst Du die Chance auf eine Antwort ungemein !!

Zu dem solltest Du auch den relevanten Code posten (bitte mit Code-Tags, siehe meine Signatur) !!
Rumraten möchte hier keiner ... :rolleyes:

Gruß Klaus
Ok sorry für den schlampigen Text.

Code:
Scanner karte = new Scanner(System.in);
int u = karte.nextInt();
System.out.println("Test");

Also ich dachte es gibt eine allgemein bekannte Lösung dafür. Deswegen wollte ich diesen, an sich selbsterklärenden Scanner "karte", den ich geschrieben habe, nicht posten. Aber hier ist er nun.
Ich hoffe das Problem ist rübergekommen, falls nicht noch einmal in Kurzform.

Führe ich das Programm aus, so muss ich in der Konsole eine Zahl eingeben, damit "Test" ausgegeben werden kann, sprich der Code weiter ausgeführt wird. However, wenn in die Konsole etwas anderes als eine Zahl, also Sonderzeichen und Buchstaben jeglicher Art eingegeben werden, kommt keine Fehlermeldung, obwohl ja eigentlich mit ".nextInt();" nur Integers akzeptiert werden müssten, oder liege ich da falsch? Also nachdem ich etwas x beliebiges in die Konsole getippt habe, was kein Integer ist, stoppt das Programm ohne Fehlermeldung. An dieser Stelle möchte ich eine Exception einbauen, welche unzulässige Eingaben, mit einer Meldung bestätigt. Nun soll der User in der Lage sein, erneut den Scanner "karte" einzugeben, dieses mal eine Zahl. Das wollte ich mit einer do-while Schleife realisieren, welche vor dem intialisieren des Scanner karte anfängt und den gesamten Code-Schnipsel umfasst (Wenn das jetzt nicht einleuchtend ist, einfach ignorieren). Also brauche ich nur Hilfe mit der Exception.
 

Viktim

Bekanntes Mitglied
Hey :)

Java:
   Scanner karte = new Scanner(System.in);
    boolean eingabeIstKorrekt = false;

    while (!eingabeIstKorrekt) {
      String eingabe = karte.nextLine();
      if (eingabe.matches("\\d+") && Integer.parseInt(eingabe) > 0) {
        System.out.println("Zahl: " + eingabe);
        eingabeIstKorrekt = true;
      } else {
        System.err.println("Fehler, Eingabe war keine Zahl, oder ist negativ.");
      }
    }

So machst du die abfrage ganz einfach ;)
das matched("\\d+") überprüft, ob die eingabe eine Zahl ist, und den zweiten teil des ifs, solltest du selber beantworten können...
Wenn du das ganze aber gerne mit einer Exception machen willst könnte das so aussehen:
Java:
Scanner karte = new Scanner(System.in);
    boolean eingabeIstKorrekt = false;
    try {
      while (!eingabeIstKorrekt) {
        String eingabe = karte.nextLine();
        if (eingabe.matches("\\d+") && Integer.parseInt(eingabe) > 0) {
          System.out.println("Zahl: " + eingabe);
          eingabeIstKorrekt = true;
        } else {
          throw new IllegalArgumentException("Fehler, Eingabe war keine Zahl, oder ist negativ.");
        }
      }
    } catch (IllegalArgumentException e) {
      e.printStackTrace();
      // System.err.println(e.getMessage());
    }

Oder so:
Java:
Scanner karte = new Scanner(System.in);
    boolean eingabeIstKorrekt = false;

    while (!eingabeIstKorrekt) {
      int eingabe;
      try {
        eingabe = Integer.parseInt(karte.nextLine());
      } catch (NumberFormatException e) {
        System.err.println("Fehler, Eingabe war keine Zahl, oder ist negativ.");
        continue;
      }
      eingabeIstKorrekt = true;
      System.out.println("Zahl: " + eingabe);
    }

Hier wird einfach alles was, man eingibt brutal zu einem int umbewandelt. Wenn dabei eine NumberFormatException fliegt (weil die eingabe keine Zahl ist.) dann gibt er die Fehlermeldung aus, und setzt durch das continue beim nächsten Schleifendurchlauf wieder auf.
Wenn die Exception nicht fliegt, ist da eine Zahl drin, der boolean wird auf true gesetzt und die Zahl wird ausgegeben.
 
Zuletzt bearbeitet:

testen1t7

Mitglied
Hey :)

Java:
   Scanner karte = new Scanner(System.in);
    boolean eingabeIstKorrekt = false;

    while (!eingabeIstKorrekt) {
      String eingabe = karte.nextLine();
      if (eingabe.matches("\\d+") && Integer.parseInt(eingabe) > 0) {
        System.out.println("Zahl: " + eingabe);
        eingabeIstKorrekt = true;
      } else {
        System.err.println("Fehler, Eingabe war keine Zahl, oder ist negativ.");
      }
    }

So machst du die abfrage ganz einfach ;)
das matched("\\d+") überprüft, ob die eingabe eine Zahl ist, und den zweiten teil des ifs, solltest du selber beantworten können...
Wenn du das ganze aber gerne mit einer Exception machen willst könnte das so aussehen:
Java:
Scanner karte = new Scanner(System.in);
    boolean eingabeIstKorrekt = false;
    try {
      while (!eingabeIstKorrekt) {
        String eingabe = karte.nextLine();
        if (eingabe.matches("\\d+") && Integer.parseInt(eingabe) > 0) {
          System.out.println("Zahl: " + eingabe);
          eingabeIstKorrekt = true;
        } else {
          throw new IllegalArgumentException("Fehler, Eingabe war keine Zahl, oder ist negativ.");
        }
      }
    } catch (IllegalArgumentException e) {
      e.printStackTrace();
      // System.err.println(e.getMessage());
    }

Oder so:
Java:
Scanner karte = new Scanner(System.in);
    boolean eingabeIstKorrekt = false;

    while (!eingabeIstKorrekt) {
      int eingabe;
      try {
        eingabe = Integer.parseInt(karte.nextLine());
      } catch (NumberFormatException e) {
        System.err.println("Fehler, Eingabe war keine Zahl, oder ist negativ.");
        continue;
      }
      eingabeIstKorrekt = true;
      System.out.println("Zahl: " + eingabe);
    }

Hier wird einfach alles was, man eingibt brutal zu einem int umbewandelt. Wenn dabei eine NumberFormatException fliegt (weil die eingabe keine Zahl ist.) dann gibt er die Fehlermeldung aus, und setzt durch das continue beim nächsten Schleifendurchlauf wieder auf.
Wenn die Exception nicht fliegt, ist da eine Zahl drin, der boolean wird auf true gesetzt und die Zahl wird ausgegeben.

Danke super Antwort! Funktioniert jetzt :D
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Warum wird mir auf der Konsole des Servers nicht "xxxx" angezeigt (Server/Client) Java Basics - Anfänger-Themen 4
M Anonyme Klassen - Warum wird in der Konsole nichts ausgegeben? Java Basics - Anfänger-Themen 1
Zrebna Kann Java Programm nicht in Konsole ausführen Java Basics - Anfänger-Themen 1
M Mein quellcode wird nicht in der Konsole ausgegeben Java Basics - Anfänger-Themen 3
M Nicht genug Eingabemöglichkeiten in der Konsole Java Basics - Anfänger-Themen 5
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
W char über die Konsole? Java Basics - Anfänger-Themen 7
J if-Schleife innerhalb einer if-Schleife wird in der Konsole nicht gelesen Java Basics - Anfänger-Themen 4
W Werte durch Konsole einlesen Java Basics - Anfänger-Themen 10
I 12 Spalten von jeweils 30 Zahlen in Konsole ausgeben Java Basics - Anfänger-Themen 6
I Java auf der Konsole Java Basics - Anfänger-Themen 5
C Erste Schritte Muster ausgeben in der Konsole - großes V Java Basics - Anfänger-Themen 5
K Ausgaben auf der Konsole (static Varible) Java Basics - Anfänger-Themen 9
S Tastatureingabe auslesen und in Konsole ausgeben Java Basics - Anfänger-Themen 6
C Ausgabe in der Konsole Java Basics - Anfänger-Themen 11
Zrebna Programm kann aus der Konsole nicht gestartet werden (in der IDE läuft es) Java Basics - Anfänger-Themen 2
J Konsole Java Basics - Anfänger-Themen 10
V Umgebungsvariable Genutzte Javaversion in der Konsole ändern Java Basics - Anfänger-Themen 5
N Tabelle schön in der Konsole ausgeben Java Basics - Anfänger-Themen 5
E Objekt durch Benutzer über Konsole erzeugen - Java Java Basics - Anfänger-Themen 3
D Tabelle in der Konsole Java Basics - Anfänger-Themen 3
J Gefilterten Stream über die Konsole ausgeben Java Basics - Anfänger-Themen 1
F Java auf Windows Konsole ausführen Java Basics - Anfänger-Themen 1
P Array einlesen von Konsole Java Basics - Anfänger-Themen 8
A Programm in Konsole Java Basics - Anfänger-Themen 4
I OOP Objektnamen über die Konsole richtig einlesen Java Basics - Anfänger-Themen 9
Bun17 Keine Ausgabe in der Konsole Java Basics - Anfänger-Themen 2
L Input/Output Wurzelzeichen in der Konsole ausgeben | Brauche Hilfe Java Basics - Anfänger-Themen 6
E Compiler-Fehler Javac Windows vs Ubuntu /Script vs Konsole Java Basics - Anfänger-Themen 4
E Best Practice Jar-file mit zwei Klassen und externer Bibliothek über Konsole erzeugen Java Basics - Anfänger-Themen 13
A Input/Output System.out Ausgabe aktualisieren, ohne Konsole vollzuspamen Java Basics - Anfänger-Themen 2
M Arrays auf Konsole formatiert ausgeben Java Basics - Anfänger-Themen 7
L Input/Output Konsole in Farben schreiben Java Basics - Anfänger-Themen 4
BlueFox Tabelle in der Konsole ausgeben - Probleme Java Basics - Anfänger-Themen 1
O Erste Schritte Scanner mehrere male benutzen (Konsole) Java Basics - Anfänger-Themen 7
O Etwas auf der Konsole ausgeben, usw. Java Basics - Anfänger-Themen 22
A Input/Output Prozess Output genauso in der Konsole ausgeben Java Basics - Anfänger-Themen 0
J Input/Output javac HelloWorld.java - Keine Textausgabe in der Konsole Java Basics - Anfänger-Themen 4
T Methoden Methode wird nicht auf Konsole ausgeführt Java Basics - Anfänger-Themen 3
E Wie Passwort-Eingabe (ohne Echo!) über Konsole ? Java Basics - Anfänger-Themen 4
G Probleme mit Konsole Java Basics - Anfänger-Themen 4
J Zahlen aus Konsole einlesen Java Basics - Anfänger-Themen 1
C Input/Output Ein Spielbrett auf Konsole ausgeben Java Basics - Anfänger-Themen 2
T Datum wird auf der Konsole richtig ausgegeben, aber im Textarea kommt ERROR Java Basics - Anfänger-Themen 8
F Wert in Linux auf die Konsole schreiben Java Basics - Anfänger-Themen 3
C Input/Output Einlesen von der Konsole mit InputStreamReader Java Basics - Anfänger-Themen 13
C Tannenbaum auf der Konsole ausgeben lassen Java Basics - Anfänger-Themen 12
Z AWT package -> keine Konsole? Java Basics - Anfänger-Themen 2
P Einlesen von der Konsole Java Basics - Anfänger-Themen 3
J Programm wird nicht auf der Konsole ausgeführt Java Basics - Anfänger-Themen 2
E Muster auf der Konsole ausgeben lassen (Schleifen) Java Basics - Anfänger-Themen 7
L Dialogbox statt Konsole verwenden Java Basics - Anfänger-Themen 5
B Konsole schließt sich sofort Java Basics - Anfänger-Themen 8
M Fortlaufende Konsole Java Basics - Anfänger-Themen 3
G Konsole gibt "alte" sachen aus Java Basics - Anfänger-Themen 3
L Konsole öffnen und Java Programm darin ausführen Java Basics - Anfänger-Themen 4
S Konsole Lanterna in NetBeans einbinden Java Basics - Anfänger-Themen 5
J ausgaben von der konsole in das fenster Java Basics - Anfänger-Themen 5
E Input/Output Konsole erkennt meinen Buchstaben nicht Java Basics - Anfänger-Themen 12
F String wird in Konsole nicht eingelesen Java Basics - Anfänger-Themen 19
A Objekte einer ArrayList auslesen und auf der Konsole ausgeben Java Basics - Anfänger-Themen 2
J Ausgabe auf der Konsole formatieren. Java Basics - Anfänger-Themen 6
T Konsole gibt nicht das Gewünschte aus Java Basics - Anfänger-Themen 5
N Mit Java Befehle auf Konsole ausführen Java Basics - Anfänger-Themen 4
M Input/Output Zeichen on Konsole einlesen Java Basics - Anfänger-Themen 3
S Erste Schritte Konsole leeren Java Basics - Anfänger-Themen 3
N String in Konsole schreiben?! Java Basics - Anfänger-Themen 2
S Beliebigen Tastendruck "einlesen" (ohne Konsole) Java Basics - Anfänger-Themen 3
F String wird richtig in konsole geschrieben aber falsch an Methode übergeben Java Basics - Anfänger-Themen 8
T Text auf der Konsole farbig machen Java Basics - Anfänger-Themen 6
OnDemand Applikation öffnen mit Konsole Java Basics - Anfänger-Themen 17
R Nach Ubuntu-Update: Konsole spuckt bei neu Kompilierten Programmen Fehler aus (BlueJ)(Ubuntu12.04) Java Basics - Anfänger-Themen 11
O Konsole - Kleine Frage Java Basics - Anfänger-Themen 22
O Bereits "gepostete" Strings in der Konsole verändern? Java Basics - Anfänger-Themen 2
T Parameter in Eigner Konsole Java Basics - Anfänger-Themen 2
B Erste Schritte Text in Konsole farbig ausgeben Java Basics - Anfänger-Themen 3
T Konsole leeren? Java Basics - Anfänger-Themen 7
K Methoden Einlesen einer unbegrenzten Matrix über Konsole Java Basics - Anfänger-Themen 6
S Programm läuft in Eclipse, aber nicht über Konsole Java Basics - Anfänger-Themen 10
E Keine Ausgabe der Konsole Java Basics - Anfänger-Themen 4
OnDemand Anführungszeichen im String werden als incompatible in der Konsole ausgegeben Java Basics - Anfänger-Themen 3
J Java Daten von Konsole einlesen (Spezielles Problem) Java Basics - Anfänger-Themen 6
D Erste Schritte Java Konsole öffnet sich nicht Java Basics - Anfänger-Themen 4
S Konsole schließen, nachdem Jar läuft Java Basics - Anfänger-Themen 5
H Exit Befehl in eigener Konsole Java Basics - Anfänger-Themen 9
Luk10 Exception beim Ausführen per Konsole Java Basics - Anfänger-Themen 6
S Konsole work time Java Basics - Anfänger-Themen 9
S runable jar in der Konsole Java Basics - Anfänger-Themen 2
D Konsole leeren? Java Basics - Anfänger-Themen 5
B Konsole beendet - Programm kontrolliert runter fahren Java Basics - Anfänger-Themen 2
K javac in der konsole Java Basics - Anfänger-Themen 4
N Logger-Ausgabe und die Konsole Java Basics - Anfänger-Themen 4
S Erste Schritte Java Konsole öffnen ohne Sysout. Java Basics - Anfänger-Themen 3
masii Spielfeld auf Konsole ausgeben Java Basics - Anfänger-Themen 3
D jar datei nur über konsole ausführbar Java Basics - Anfänger-Themen 4
C Minesweeper mit Arrays über Konsole Java Basics - Anfänger-Themen 4
S Ausgabe auf Konsole nummerieren Java Basics - Anfänger-Themen 2
U jar funktioniert nur über konsole Java Basics - Anfänger-Themen 4
L Konsole und packages Java Basics - Anfänger-Themen 8
M Maskierte Eingaben in der Konsole? Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben