Wie kann ich mithilfe der Scanner
Klasse Eingaben von der Konsole lesen ? Etwas wie das:
System.out.println("Enter your username: ");
Scanner = input(); // Or something like this, I don't know the code
Grundsätzlich möchte ich nur, dass der Scanner eine Eingabe für den Benutzernamen liest und die Eingabe einer String
Variablen zuweist.
java
java.util.scanner
Hock3yPlayer
quelle
quelle
Antworten:
Ein einfaches Beispiel, um zu veranschaulichen, wie es
java.util.Scanner
funktioniert, wäre das Lesen einer einzelnen Ganzzahl ausSystem.in
. Es ist wirklich ganz einfach.Um einen Benutzernamen abzurufen, würde ich wahrscheinlich verwenden
sc.nextLine()
.Sie können auch verwenden,
next(String pattern)
wenn Sie mehr Kontrolle über die Eingabe wünschen oder nur dieusername
Variable validieren möchten .Weitere Informationen zu deren Implementierung finden Sie in der API-Dokumentation für
java.util.Scanner
quelle
quelle
Daten von der Konsole lesen
BufferedReader
ist synchronisiert, sodass Lesevorgänge auf einem BufferedReader sicher von mehreren Threads aus ausgeführt werden können. Die Puffergröße kann angegeben werden, oder die Standardgröße ( 8192 ) kann verwendet werden. Die Standardeinstellung ist für die meisten Zwecke groß genug.readLine () « liest nur Daten Zeile für Zeile aus dem Stream oder der Quelle. Eine Zeile wird als durch eine der folgenden abgeschlossen: \ n, \ r (oder) \ r \ n
Scanner
Unterbricht die Eingabe in Token mithilfe eines Trennzeichens, das standardmäßig mit Leerzeichen übereinstimmt und von erkannt wirdCharacter.isWhitespace
.« Bis der Benutzer Daten eingibt, kann der Scanvorgang blockiert werden und auf die Eingabe warten. « Verwenden Sie den Scanner ( BUFFER_SIZE = 1024 ), wenn Sie einen bestimmten Tokentyp aus einem Stream analysieren möchten. « Ein Scanner ist jedoch nicht threadsicher. Es muss extern synchronisiert werden.
next () «Findet den nächsten vollständigen Token von diesem Scanner und gibt ihn zurück. nextInt () «Scannt das nächste Token der Eingabe als int.
Code
Ein- und Ausgänge von Stream
quelle
BufferedReader, Scanner
Lesen von Daten aus einer lokalen Datei (OR).Es gibt ein Problem mit der input.nextInt () -Methode - sie liest nur den int-Wert.
Wenn Sie also die nächste Zeile mit input.nextLine () lesen, erhalten Sie "\ n", dh den EnterSchlüssel. Um dies zu überspringen, müssen Sie die input.nextLine () hinzufügen.
Versuchen Sie es so:
quelle
Es gibt verschiedene Möglichkeiten, Eingaben vom Benutzer zu erhalten. Hier in diesem Programm nehmen wir die Scanner-Klasse, um die Aufgabe zu erfüllen. Diese Scannerklasse
java.util
fällt unter , daher lautet die erste Zeile des Programms import java.util.Scanner. Dadurch kann der Benutzer Werte verschiedener Typen in Java lesen. Die Importanweisungszeile sollte in der ersten Zeile des Java-Programms stehen, und wir fahren mit dem Code fort.Um auf Methoden in der Scannerklasse zuzugreifen, erstellen Sie ein neues Scannerobjekt als "in". Jetzt verwenden wir eine seiner Methoden, nämlich "next". Die "nächste" Methode ruft die Textzeichenfolge ab, die ein Benutzer über die Tastatur eingibt.
Hier verwende ich
in.nextLine();
, um den String zu erhalten, den der Benutzer eingibt.quelle
quelle
Sie können ein einfaches Programm erstellen, um nach dem Namen des Benutzers zu fragen und die Eingaben für die Antwort zu drucken.
Oder fordern Sie den Benutzer auf, zwei Zahlen einzugeben, und Sie können diese Zahlen addieren, multiplizieren, subtrahieren oder dividieren und die Antworten für Benutzereingaben genau wie das Verhalten eines Taschenrechners drucken.
Dort benötigen Sie also die Scannerklasse. Sie müssen
import java.util.Scanner;
und im Code müssen Sie verwenden:input
ist ein Variablenname.Sehen Sie, wie Sie dieses Bild unterscheidet sich :
input.next();
,i = input.nextInt();
,d = input.nextDouble();
Laut einem String variieren int und double im Übrigen auf die gleiche Weise. Vergessen Sie nicht die Importanweisung oben in Ihrem Code.
quelle
Ein einfaches Beispiel:
quelle
Wenn der Benutzer seine Eingabe eingibt
username
, prüfen Sie auch, ob eine gültige Eingabe vorliegt.quelle
So lesen Sie die Eingabe:
So lesen Sie Eingaben, wenn Sie eine Methode mit einigen Argumenten / Parametern aufrufen:
quelle
quelle
Hier ist die vollständige Klasse, die die erforderliche Operation ausführt:
quelle
Scanner
.Sie können diesen Code fließen lassen:
quelle
Sie können die Scannerklasse in Java verwenden
quelle
Es gibt eine einfache Möglichkeit, von der Konsole aus zu lesen.
Bitte finden Sie den folgenden Code:
Ein detailliertes Verständnis finden Sie in den folgenden Dokumenten.
Doc
Lassen Sie uns nun über das detaillierte Verständnis der Funktionsweise der Scannerklasse sprechen:
Dies ist der Konstruktor zum Erstellen der Scannerinstanz.
Hier übergeben wir die
InputStream
Referenz, die nichts als a istSystem.In
. Hier öffnet sich dasInputStream
Pipe für die Konsoleneingabe.Durch Übergeben von System.in öffnet dieser Code den Socket zum Lesen von der Konsole.
quelle