Java System.in.read() funktioniert nicht richtig?
Ich habe folgendes Programm geschrieben:
package pack1;
import java.io.IOException;
public class MainProgramm {
public static void main(String[] args) {
int zahl;
System.out.println("Geben Sie eine Zahl ein:");
try {
zahl = System.in.read();
System.out.print("Sie haben die Zahl " + zahl + " eingegeben.");
}
catch (IOException e){
System.out.println("Fehler");
}
}
}
Wenn ich es laufen lasse erhalte ich folgende Ausgabe:
Geben Sie eine Zahl ein:
3
Sie haben die Zahl 51 eingegeben.
oder
Geben Sie eine Zahl ein:
0
Sie haben die Zahl 48 eingegeben.
also immer genau 48 zu viel.
Wenn ich Buchstaben eingebe erhalte ich keinen Fehler, sondern ebenfalls seltsame Ergebnisse:
Geben Sie eine Zahl ein:
d
Sie haben die Zahl 100 eingegeben.
oder
Geben Sie eine Zahl ein:
g
Sie haben die Zahl 103 eingegeben.
Jetzt meine Frage: Wo liegt der Fehler? Oder kann ich Eingaben am besten mit einer ganz anderen Klasse machen?
2 Antworten
Hallo, ich habe was gefunden:
import java.util.Scanner; int zahl = 0;
Scanner sc = new Scanner(System.in);
zahl = sc.nextInt();
Probier das bitte mal, ich suche noch eine Möglichkeit raus!
Hier noch eine Möglichkeit:
import javax.swing.*;
String Eingabe1 = JOptionPane.showInputDialog ("Gib eine Zahl ein:");
int Zahl1 = Integer.parseInt(Eingabe1);