Konsoleneingabe in BlueJ?

2 Antworten

Du kennst bereits den Standard-Ausgabe-Stream System.out, der Standard-Eingabe-Stream heißt System.in. Dieser ist ein Objekt des Typs InputStream. Du kannst die read-Methode nutzen, um einzelne Bytes auszulesen.

https://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html#read()

Noch einfacher ist es aber, wenn du das Objekt durch eine Instanz der Scanner-Klasse erweiterst. Sie bietet mehrere Methoden an, den Ausgabe-Stream leichter auszulesen.

https://docs.oracle.com/javase/8/docs/api/java/util/Scanner.html

Bsp.:

Scanner input = new Scanner(System.in);
int number = input.nextInt();
IchMaqDichx3 
Fragesteller
 10.11.2017, 00:06

Danke für deine Hilfe, ich habe mir das durchgelesen, und es eigentlich so im Groben verstanden, aber ich wusste nicht dass das so schwer und aufwendig ist.. Ich habe das jetzt versucht in meiner Klasse einzusetzten, und habe keine Fehler, aber ich kann jetzt die Konsole nicht mehr sehen.. und bin verwirrt.
Ich verstehe jetzt nicht, was ich falsch gemacht habe.. 
(Sry, wir haben seit September das Thema BlueJ in Informatik, und wir hatten das mit der Eingabe noch nicht gehabt..)

import java.util.Scanner;

public class Kaffeemaschine

{

   

...

public Kaffeemaschine()

...

   }

   public static void main(String[] args)

{

System.out.println(" - 1)Wasserstand überprüfen");

System.out.println(" - 2)Bohnenvorrat überprüfen");

Scanner input = new Scanner(System.in);

System.out.print("Geben Sie die Nummer Ihrer gewünschten Anweisung ein.");

int eingabe = input.nextInt();

}

}

Ich will das so machen, dass man die Zahl von den Anweisungen angibt und darauf hin if und else Verzweigungen folgen, aber ich krieg das mit der Konsolen-Eingabe nicht hin.. :(

0
regex9  10.11.2017, 00:58
@IchMaqDichx3

Das empfindest du aufwendig? Es sind doch nur 2 Zeilen + der Import. So weit ich das sehe, hast du bisher auch alles richtig gemacht. Nun fehlt dir doch nur noch das if-else. Wieso du nun deine Konsole nicht mehr sehen kannst, kann ich dir nicht sagen. Vielleicht startest du BlueJ einfach nochmal neu.

0

Schau dir mal die Klasse java.util.Scanner näher an. Damit sind Eingaben problemlos realisierbar.  

Im Wesentlichen:  

Scanner sc = new Scanner(System.in);  

String eingabe = sc.nextLine();  

Steht nicht in einem separaten Block weil ich mobil mit der Formatierung nicht klarkomme.