Tastatureingabe abfangen

Hallo,

als Java Neuling versuche ich gerade ein Tutorial nachzuprogrammieren, dazu wird einfach ein Zufallszahl erzeugt, wobei der User eine Zahl eingeben muss, die zur Zufallszahlberechnung herangezogen wird.

Das Problem ist diese Eingabe des Users.

Ich denke, dazu muss ich die java.io.* importieren.

Vermutlich muss ich einen BufferedInputStream machen, der mir die Dateneingabe der Tastatur abfängt.
Diese kann ich dann einzeln weiterverarbeiten, oder?

Könnte mir jmd kurz auf die Sprünge helfen?

Danke sehr für die Unterstützung.

Gruß
 
Hi bin zwar auch kein Profi aber versuche mal folgendes :

Java:
Scanner sc = new Scanner(System.in);

int zahl; 

System.out.println("Bitte Zahl eingeben :");

sc.nextInt();

[/Java]
 
Sorry letzte Zeile war falsch zu schnell getippt : )

Java:
zahl = sc.nextInt();

also komplett

Java:
Scanner sc = new Scanner(System.in);
 
int zahl; 
 
System.out.println("Bitte Zahl eingeben :");
 
zahl = sc.nextInt();
 
Ne, es geht noch gar nicht um ne GUI... soweit bin ich ja gar nicht 😉

Ich will erstmal einfach ne Klasse machen, die mir ne Zufallszahl errechnet...

Java:
import java.util.*;
import java.io.*;
class Zufallszahl {
  public Zufallszahl(
    Random rand = new Random();
    int i;
    int Benutzereingabe;
    // Hier soll die Benutzereingabe abgefangen und in Benutzereingabe gespeichert werden
    i = rand.nextInt(Benutzereingabe);
    System.out.println("Die Eingabe war:");
    System.out.println(Benuztereingabe);
    System.out.print("Die errechnete Zahl ist: ");
    System.out.println(i);
}

diese Benutzereingabe (ganz ohne Windows und GUI) möchte ich noch verstehen und machen.

Die Sache mit dem Scanner erscheint mir nur bedingt logisch... ist es nicht so, dass Scanner mit nextInt gar nichts zu tun hat... Scanner ist doch in diesem Beispiel auch für die Tastatureingabe zuständig, oder?
 
JO^^ Dashier an die richtige Stelle einzufügen ist die Aufgabe, die du noch hast 😉

Java:
Scanner sc = new Scanner(System.in); 
benutzereingabe = sc.nextInt();

Beachte bitte: Variablen schreibt man klein 😉
Und ka, ob dus hier im Forumsfenster geschrieben hast, aber der Konstruktorkopf braucht noch Änderung^^ 😉
 
Scanner ist die Tastatureingabe ^^

und mit nextInt() bekommste den IntWert der Eingabe.

Ach so... also spar ich mir das casten...

Ich dachte, ich bekomme damit einen Char und müsste ihn dann nach int casten... aber wenn das so ist, ok.

Aber nextInt()... hört sich ja nun mal auch komisch an. Muss ich mal genau nachschauen.
Bei der Sache nochmal: wie bekomme ich eigentlich raus, welche Methoden es in einer Classe wie java.io.* gibt?
Und vor allem, was die können.

ansonsten danke euch für die Aufklärung
 
Aber nextInt()... hört sich ja nun mal auch komisch an. Muss ich mal genau nachschauen.

Einfach mal ausprobieren 😉
Natürlich sollte man schon verstehen was man macht, aber das kann man, wenn man überzeugt ist, dass es tatsächlich zu funktionieren scheint 😉
 
Ok, ich danke euch für die freundliche Hilfe...

Werde mal das Tutorial weitermachen und hoffen, dass ich nicht an solch einfachen Dingen öfter hängen bleib 🙁

Für die Hifle...:toll::toll:
 
so... jetzt habe ich es so gemacht

Java:
import java.util.*;
import java.io.*;


public class Zufallszahl {
	public Zufallszahl() {
		Random Zufall = new Random();
		
		int Tasteneingabe = 0;
		Scanner scanner = new Scanner(System.in);
		Tasteneingabe = scanner.nextInt();
		
		int zufallszahl_generiert = Zufall.nextInt(Tasteneingabe);
		return;
	}
}

irgendwie stimmt es doch nicht.

Eclipse beschwert sich über das Object scanner... und über das return usw.

Also... ich wollte jetzt da den Konstruktur machen, der direkt die Zufallszahl erzeugt.
Hab ich da nen Denkfehler beim Ansatz der Programmierung...

irgendwo hapert es noch.

Danke euch nochmal für Hilfe...
 
"Eclipse beschwert sich" ist keine gute Art, die Fehlermeldung mitzuteilen 😉

Das Problem mit Scanner löst sich, wenn du das Caret (den blinkenden Strich) hinter das Wort Scanner packst, einmal die leertaste drückst und dort java.util.Scanner auswählst. Die Klasse liegt nämlich im Paket java.util.*;
Edit: Wenns eindeutig ist, brauchst du nicht einmal mehr von Hand etwas auswählen.
Edit2: Ohh, java.util.* is schon importiert.. dann brauchts wirklich die Fehlermedlung ^^ 😳

Konstruktoren verwendet man ohne das return Statement (es wir am Ende ja eh immer nur das gerade erzeugte Object zurückgegeben)
 
Zuletzt bearbeitet:
Ist aber eigentlich so richtig. Wobei du dir das
Code:
import java.io.*;
sowie das
Code:
return;
sparen kannst. Außerdem bräuchtest du wohl noch eine main Methode aus der du den Konstruktor aufrufst und die Ausgabe deiner zufallsgenerierten Zahl.

Edit: Siehe Vorredner 😉
 
du hast natürlich recht...

es funktioniert auch... nur ich habe nicht bedacht, dass ich ja jetzt auch die Dateneingabe machen muss...
Ich hab nur ne Schwarze Konsole gehabt, ohne Meldungen (sowas wie... sie müssen jetzt was eingeben oder so) und daher einen Fehler vermutet...

Tut mir leid.

Es funktioniert richtig.

und der Rest, den du beschreibst... ist natürlich auch richtig...
sorry 😱
 

Neue Themen


Zurück
Oben