Jak mogę odczytać dane wejściowe z konsoli za pomocą Scanner
klasy? Coś takiego:
System.out.println("Enter your username: ");
Scanner = input(); // Or something like this, I don't know the code
Zasadniczo wszystko, czego chcę, to aby skaner odczytał dane wejściowe dla nazwy użytkownika i przypisał je do String
zmiennej.
java
java.util.scanner
Hock3yPlayer
źródło
źródło
Odpowiedzi:
Prosty przykład ilustrujący, jak
java.util.Scanner
działa odczytanie jednej liczby całkowitejSystem.in
. To naprawdę bardzo proste.Aby pobrać nazwę użytkownika, prawdopodobnie bym użył
sc.nextLine()
.Możesz także użyć,
next(String pattern)
jeśli chcesz mieć większą kontrolę nad danymi wejściowymi lub po prostu zweryfikowaćusername
zmienną.Więcej informacji na temat ich implementacji znajdziesz w Dokumentacji API dla
java.util.Scanner
źródło
źródło
Odczytywanie danych z konsoli
BufferedReader
jest zsynchronizowany, więc operacje odczytu na BufferedReader można bezpiecznie wykonywać z wielu wątków. Można określić rozmiar bufora lub rozmiar domyślny ( 8192 ). Wartość domyślna jest wystarczająco duża dla większości celów.readLine () « po prostu odczytuje dane linia po linii ze strumienia lub źródła. Linia jest uważana za zakończoną przez jedną z następujących: \ n, \ r (lub) \ r \ n
Scanner
dzieli swoje dane wejściowe na tokeny za pomocą wzoru separatora, który domyślnie dopasowuje białe znaki (\ s) i jest rozpoznawany przezCharacter.isWhitespace
.« Dopóki użytkownik nie wprowadzi danych, operacja skanowania może zostać zablokowana w oczekiwaniu na dane wejściowe. « Użyj skanera ( BUFFER_SIZE = 1024 ), jeśli chcesz przeanalizować określony typ tokena ze strumienia. « Skaner nie jest jednak bezpieczny dla wątków. Musi być zsynchronizowany zewnętrznie.
next () «Znajduje i zwraca następny pełny token z tego skanera. nextInt () «Skanuje następny token wejścia jako liczbę całkowitą.
Kod
Wejścia i wyjścia Stream
źródło
BufferedReader, Scanner
aby odczytać dane z pliku sieciowego pliku lokalnego (OR).Wystąpił problem z metodą input.nextInt () - odczytuje tylko wartość int.
Tak więc podczas czytania następnego wiersza za pomocą input.nextLine () otrzymujesz „\ n”, czyli Enterklucz. Aby to pominąć, musisz dodać input.nextLine ().
Spróbuj tak:
źródło
Istnieje kilka sposobów uzyskiwania informacji od użytkownika. W tym programie weźmiemy klasę skanera, aby osiągnąć to zadanie. Ta klasa skanerów jest zaliczana
java.util
, dlatego pierwszą linią programu jest import java.util.Scanner; co pozwala użytkownikowi odczytać wartości różnych typów w Javie. Wiersz instrukcji importu powinien znajdować się w pierwszym wierszu programu Java, a my kontynuujemy kod.Aby uzyskać dostęp do metod w klasie Scanner, utwórz nowy obiekt skanera jako „in”. Teraz używamy jednej z jej metod, czyli „next”. Metoda „next” pobiera ciąg tekstu, który użytkownik wprowadza na klawiaturze.
Tutaj używam,
in.nextLine();
aby uzyskać ciąg, który wprowadza użytkownik.źródło
źródło
Możesz stworzyć prosty program, który zapyta o nazwę użytkownika i wydrukuje dowolne dane wejściowe odpowiedzi.
Możesz też poprosić użytkownika o wprowadzenie dwóch liczb, a następnie możesz dodać, pomnożyć, odjąć lub podzielić te liczby i wydrukować odpowiedzi dla danych wejściowych użytkownika, podobnie jak zachowanie kalkulatora.
Więc potrzebujesz klasy Scanner. Musisz
import java.util.Scanner;
, aw kodzie musisz użyć:input
to nazwa zmiennej.Zobacz, jak różni:
input.next();
,i = input.nextInt();
,d = input.nextDouble();
Według String, int i double różnią się w ten sam sposób dla reszty. Nie zapomnij instrukcji importu u góry kodu.
źródło
Prosty przykład:
źródło
Gdy użytkownik wprowadzi swoje dane
username
, sprawdź również prawidłowy wpis.źródło
Aby odczytać dane wejściowe:
Aby odczytać dane wejściowe podczas wywoływania metody z niektórymi argumentami / parametrami:
źródło
źródło
Oto pełna klasa, która wykonuje wymaganą operację:
źródło
Scanner
.Możesz przepłynąć ten kod:
źródło
Możesz użyć klasy Scanner w Javie
źródło
Istnieje prosty sposób czytania z konsoli.
Znajdź poniższy kod:
Szczegółowe informacje można znaleźć w poniższych dokumentach.
Doc
Porozmawiajmy teraz o szczegółowym zrozumieniu działania klasy Scanner:
Jest to konstruktor do tworzenia instancji skanera.
Mijamy tutaj
InputStream
odniesienie, które jest niczym innym jakSystem.In
. Tutaj otwieraInputStream
potok dla wejścia konsoli.Po przekazaniu pliku System.in ten kod otworzy gniazdo do odczytu z konsoli.
źródło