W tym samouczku dowiemy się o skanerze Java i jego metodach na przykładach.
Scanner
Klasa java.util
pakiet służy do odczytu danych wejściowych z różnych źródeł, takich jak strumienie wejściowe, użytkowników, plików, itp Weźmy przykład.
Przykład 1: Odczytaj wiersz tekstu za pomocą skanera
import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter your name: "); // takes input from the keyboard String name = input.nextLine(); // prints the name System.out.println("My name is " + name); // closes the scanner input.close(); ) )
Wynik
Wpisz swoje imię i nazwisko: Kelvin Nazywam się Kelvin
W powyższym przykładzie zwróć uwagę na linię
Scanner input = new Scanner(System.in);
Tutaj stworzyliśmy obiekt o Scanner
nazwie input.
System.in
Parametr służy wziąć dane ze standardowego wejścia. Działa to tak, jak pobieranie danych wejściowych z klawiatury.
Następnie użyliśmy nextLine()
metody Scanner
klasy do odczytania wiersza tekstu od użytkownika.
Teraz, gdy masz już pewne pojęcie Scanner
, przyjrzyjmy się temu więcej.
Importuj klasę skanera
Jak widać na powyższym przykładzie, musimy zaimportować java.util.Scanner
pakiet, zanim będziemy mogli użyć Scanner
klasy.
import java.util.Scanner;
Aby dowiedzieć się więcej o importowaniu pakietów, odwiedź stronę Pakiety Java.
Utwórz obiekt skanera w języku Java
Oto jak możemy tworzyć Scanner
obiekty po zaimportowaniu pakietu .
// read input from the input stream Scanner sc1 = new Scanner(InputStream input); // read input from files Scanner sc2 = new Scanner(File file); // read input from a string Scanner sc3 = new Scanner(String str);
Tutaj utworzyliśmy obiekty Scanner
klasy, które będą odczytywać dane wejściowe odpowiednio z InputStream, File i String.
Metody skanera Java do wprowadzania danych
Scanner
Klasa udostępnia różne metody, które pozwalają nam odczytać wejść różnych typów.
metoda | Opis |
---|---|
nextInt() | odczytuje int wartość od użytkownika |
nextFloat() | czyta float wartość od użytkownika |
nextBoolean() | odczytuje boolean wartość od użytkownika |
nextLine() | czyta wiersz tekstu od użytkownika |
next() | czyta słowo użytkownika |
nextByte() | odczytuje byte wartość od użytkownika |
nextDouble() | odczytuje doubl wartość e od użytkownika |
nextShort() | odczytuje short wartość od użytkownika |
nextLong() | odczytuje long wartość od użytkownika |
Przykład 2: Java Scanner nextInt ()
import java.util.Scanner; class Main ( public static void main(String() args) ( // creates a Scanner object Scanner input = new Scanner(System.in); System.out.println("Enter an integer: "); // reads an int value int data1 = input.nextInt(); System.out.println("Using nextInt(): " + data1); input.close(); ) )
Wynik
Wprowadź liczbę całkowitą: 22 Za pomocą metody nextInt (): 22
W powyższym przykładzie użyliśmy nextInt()
metody do odczytania wartości całkowitej.
Przykład 3: Java Scanner nextDouble ()
import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter Double value: "); // reads the double value double value = input.nextDouble(); System.out.println("Using nextDouble(): " + value); input.close(); ) )
Wynik
Wprowadź wartość Double: 33,33 Za pomocą funkcji nextDouble (): 33,33
W powyższym przykładzie użyliśmy nextDouble()
metody do odczytania wartości zmiennoprzecinkowej.
Przykład 4: Java Scanner next ()
import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter your name: "); // reads the entire word String value = input.next(); System.out.println("Using next(): " + value); input.close(); ) )
Wynik
Wpisz swoje imię i nazwisko: Jonny Walker. Używając next (): Jonny
W powyższym przykładzie użyliśmy next()
metody do odczytania ciągu znaków od użytkownika.
Tutaj podaliśmy pełne imię i nazwisko. Jednak next()
metoda odczytuje tylko imię.
Dzieje się tak, ponieważ next()
metoda odczytuje dane wejściowe aż do białego znaku. Po napotkaniu białych znaków zwraca łańcuch (z wyłączeniem białych znaków).
Przykład 5: Java Scanner nextLine ()
import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter your name: "); // reads the entire line String value = input.nextLine(); System.out.println("Using nextLine(): " + value); input.close(); ) )
Wynik
Wpisz swoje imię i nazwisko: Jonny Walker. Za pomocą nextLine (): Jonny Walker
W pierwszym przykładzie użyliśmy nextLine()
metody do odczytania ciągu znaków od użytkownika.
W przeciwieństwie do next()
tej nextLine()
metody odczytuje cały wiersz danych wejściowych, w tym spacje. Metoda ta jest zakończona, gdy napotka następnego wiersza charakter .
Recommended Reading: Java Scanner skipping the nextLine().
Java Scanner with BigInteger and BigDecimal
Java scanner can also be used to read the big integer and big decimal numbers.
- nextBigInteger() - reads the big integer value from the user
- nextBigDecimal() - reads the big decimal value from the user
Example 4: Read BigInteger and BigDecimal
import java.math.BigDecimal; import java.math.BigInteger; import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter a big integer: "); // reads the big integer BigInteger value1 = input.nextBigInteger(); System.out.println("Using nextBigInteger(): " + value1); System.out.print("Enter a big decimal: "); // reads the big decimal BigDecimal value2 = input.nextBigDecimal(); System.out.println("Using nextBigDecimal(): " + value2); input.close(); ) )
Output
Enter a big integer: 987654321 Using nextBigInteger(): 987654321 Enter a big decimal: 9.55555 Using nextBigDecimal(): 9.55555
In the above example, we have used the java.math.BigInteger
and java.math.BigDecimal
package to read BigInteger
and BigDecimal
respectively.
Working of Java Scanner
Scanner
Klasa odczytuje całą linię i dzieli linię do tokenów. Tokeny to małe elementy, które mają pewne znaczenie dla kompilatora Java. Na przykład,
Załóżmy, że istnieje ciąg wejściowy:
He is 22
W tym przypadku skaner odczyta całą linię i podzieli ciąg na tokeny: „ On ”, „ is ” i „ 22 ”. Następnie obiekt wykonuje iterację po każdym tokenie i odczytuje każdy token przy użyciu różnych metod.
Uwaga : Domyślnie do dzielenia tokenów używa się spacji.