Anzeige:
Ergebnis 1 bis 9 von 9

Thema: Java; Zahl von Tastatur einlesen

  1. #1
    Registrierter Benutzer
    Registriert seit
    16.11.2002
    Beiträge
    22

    Java; Zahl von Tastatur einlesen

    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

  2. #2
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    ein Swing/AWT Programm oder ein konsolendings?

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  3. #3
    Registrierter Benutzer
    Registriert seit
    16.11.2002
    Beiträge
    22
    ein konsolendings :-)
    da ich gerade noch am java lernen bin und laaangsam anfangen möchte :-)

    Gruß, Brocki

  4. #4
    Registrierter Benutzer Avatar von sixfriends
    Registriert seit
    26.03.2003
    Ort
    /home/sixfriends
    Beiträge
    285
    Code:
    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
    .
    Wenn die Sonne der Kultur niedrig steht, werfen selbst Zwerge einen Schatten.

  5. #5
    Registrierter Benutzer
    Registriert seit
    16.11.2002
    Beiträge
    22
    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

  6. #6
    Registrierter Benutzer
    Registriert seit
    16.11.2002
    Beiträge
    22
    Ich habe das Problem jetzt anders gelöst

    Code:
    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 ...

  7. #7
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    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à
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  8. #8
    Registrierter Benutzer Avatar von sixfriends
    Registriert seit
    26.03.2003
    Ort
    /home/sixfriends
    Beiträge
    285
    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:
    Code:
    int Zahl = read();
    Wenn das nicht genau genug war, dann solltest du das programmieren aufgeben (Just kidding)

    sixfriends
    .
    Wenn die Sonne der Kultur niedrig steht, werfen selbst Zwerge einen Schatten.

  9. #9
    Registrierter Benutzer
    Registriert seit
    16.11.2002
    Beiträge
    22
    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

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •