PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Java; Zahl von Tastatur einlesen



Brocki
18-10-2004, 13:19
Hallo Zusammen,

ich grübel hier seit einem Tag über dem Problem wie ich in Java Tastatur eingaben in eine Variable speichern kann, genauer gesagt möchte ich Integer Werte von der Tastatur auslesen.

Wenn ich im Netz suche, finde ich so viele verschiedene Ansätze nur leider verstehe ich sie immer nur halb ...
Vielleicht kann mir ja jemand von euch kurz und pregnannt erklären wie ich das mach.

Vielen, vielen Dank,
Brocki

peschmae
18-10-2004, 14:31
ein Swing/AWT Programm oder ein konsolendings?

MfG Peschmä

Brocki
18-10-2004, 14:41
ein konsolendings :-)
da ich gerade noch am java lernen bin und laaangsam anfangen möchte :-)

Gruß, Brocki

sixfriends
18-10-2004, 14:54
public static int read() throws IOException {
return Integer.parseInt(stdin.readLine().trim());
}

public static double readDouble() throws IOException {
return Double.parseDouble(stdin.readLine().trim());
}

Stichwort: Wrapper Klassen

Brocki
18-10-2004, 16:53
Schön und gut, perfekt wäre es jetzt auch noch wenn du mir erklären könntest was das ganze genau macht, damit ich es auch effektiv nutzen könnte
*ganz lieb schau*

Ich suche aber mal weiter vielelicht finde ich auch selbst ne genau erklärung,
vielen Dank,

Brocki

Brocki
18-10-2004, 17:29
Ich habe das Problem jetzt anders gelöst



int Zahl = 0;
BufferedReader br = new BufferedReader(new onputStreamReader(System.in));
try {
System.out.println("Bitte eine zahl eingeben: ");
zahl = Integer.parseInt(br.readLine());
} catch (IOException ioe) {
ioe.printStackTrace();
} catch (NumberFormatException nfe) {
nfe.printStackTrace();
}


es funktioniert und das ist schonmal gut :-) (auch wenn ich noch nicht genau weiss wofür das try und catch da ist ...

Trotzdem vielen, vielen Dank!
Brocki

@sixfriends: Deine Lösung klingt interesant bzw. sieht interesant aus nur leider verstehe ich sie nicht ...

peschmae
18-10-2004, 19:18
Das Try-Catch ist exception-Handling. Sollte eigentlich in jedem Java-Buch beschrieben sein (u.a. www.javabuch.de)

Kurz: Das einlesen von so nem Int kann auch Probleme machen - z.B. wenn der User Buchstaben eingibt oder wenn das lesen Mangels Ressourcen oder aus was auch immer fèr Grènden fehlschlàgt. In so nem Falle wird in Java ne Exception "geworfen" - und auf einige spezielle Fàlle dieser Exceptions reagierst du mit dem catch - das try {} ist nur zum sagen von wo bis wo zum Catch gesprungen wird wenn so ne Exception auftritt.

MfG peschmà

sixfriends
20-10-2004, 15:07
Was ich da aufgeschrieben habe, ist nix weiter als eine Funktion zum einlesen von int (read()) und eine Funktion zum Einlesen von double (readDouble()). Und wenn du genau hinsiehst, wirst du feststellen, dass die Versionen sich nur im Exception Handling und im wrappen des InputStream unterscheiden.

Also: Dein "br" ist quasi "stdin" mit ein paar (in diesem Fall unnötigen) Funktionen.
stdin.readLine() und br.readLine() geben einen String zurück, der von der Tastatur eingelesen wurde. trim() entfernt Whitespace (Leerzeichen, tab, enter) vom Anfang und Ende dieses Strings und die Funktion Integer.parseInt(String) gibt wenn möglich eine int Zahl aus, die dem String entspricht.
Das ganze steht in einer extra Funktion, so dass du nur noch schreiben müsstest:
int Zahl = read();

Wenn das nicht genau genug war, dann solltest du das programmieren aufgeben :p (Just kidding)

sixfriends

Brocki
20-10-2004, 20:39
Danke euch beiden!!

Ich hatte es am ende durch selbständiges recherchieren, ausprobieren usw auch geblickt aber es ist schön, dass ihr beiden mir nochmal eine solch genau Erklärung gegeben habt. So habe ich wenigstens die bestätigung bekommen, dass ich das alles richtig verstanden habe!!

Vielen Dank und wenn ich wieder Probleme habe melde ich mich wieder :-).

Viele Grüße,
Brocki