Klasę skanera w Javie znajdziesz w pakiecie java.util. Java udostępnia różne sposoby odczytywania danych wejściowych z klawiatury, a klasa java.util.Scanner jest jednym z nich.
Klasa Java Scanner dzieli dane wejściowe na tokeny, używając ogranicznika, którym domyślnie są białe znaki. Zapewnia wiele metod odczytu i analizy różnych wartości pierwotnych.
Klasa Java Scanner jest szeroko stosowana do analizowania tekstu pod kątem ciągów i typów pierwotnych przy użyciu wyrażeń regularnych. Jest to najprostszy sposób na uzyskanie danych wejściowych w Javie. Za pomocą skanera w Javie możemy uzyskać dane wejściowe od użytkownika w typach pierwotnych, takich jak int, long, double, byte, float, short itp.
Klasa Java Scanner rozszerza klasę Object i implementuje interfejsy Iterator i Closeable.
Klasa Java Scanner udostępnia metody nextXXX() umożliwiające zwrócenie typu wartości, takie jak nextInt(), nextByte(), nextShort(), next(), nextLine(), nextDouble(), nextFloat(), nextBoolean() itp. Aby pobrać ze skanera pojedynczy znak, możesz wywołać metodę next().charAt(0), która zwraca pojedynczy znak.
Deklaracja klasy skanera Java
public final class Scanner extends Object implements Iterator
Jak zdobyć skaner Java
Aby uzyskać instancję skanera Java, która odczytuje dane wejściowe od użytkownika, musimy przekazać strumień wejściowy (System.in) w konstruktorze klasy Scanner. Na przykład:
Scanner in = new Scanner(System.in);
Aby uzyskać instancję skanera Java, która analizuje ciągi znaków, musimy przekazać ciągi znaków w konstruktorze klasy Scanner. Na przykład:
Scanner in = new Scanner('Hello Javatpoint');
Konstruktory klas skanera Java
SN | Konstruktor | Opis |
---|---|---|
1) | Skaner (źródło pliku) | Konstruuje nowy skaner, który generuje wartości zeskanowane z określonego pliku. |
2) | Skaner (źródło pliku, ciąg znakówName) | Konstruuje nowy skaner, który generuje wartości zeskanowane z określonego pliku. |
3) | Skaner (źródło wejściowego strumienia) | Konstruuje nowy skaner, który generuje wartości zeskanowane z określonego strumienia wejściowego. |
4) | Skaner (źródło strumienia wejściowego, ciąg znakówName) | Konstruuje nowy skaner, który generuje wartości zeskanowane z określonego strumienia wejściowego. |
5) | Skaner (źródło czytelne) | Konstruuje nowy skaner, który generuje wartości zeskanowane z określonego źródła. |
6) | Skaner (źródło ciągu) | Konstruuje nowy skaner, który generuje wartości zeskanowane z określonego ciągu. |
7) | Skaner (źródło ReadableByteChannel) | Konstruuje nowy skaner, który generuje wartości zeskanowane z określonego kanału. |
8) | Skaner (źródło ReadableByteChannel, ciąg znaków charsetName) | Konstruuje nowy skaner, który generuje wartości zeskanowane z określonego kanału. |
9) | Skaner (źródło ścieżki) | Konstruuje nowy skaner, który generuje wartości zeskanowane z określonego pliku. |
10) | Skaner (źródło ścieżki, ciąg znakówName) | Konstruuje nowy skaner, który generuje wartości zeskanowane z określonego pliku. |
Metody klas skanera Java
Poniżej znajduje się lista metod skanera:
SN | Modyfikator i typ | metoda | Opis |
---|---|---|---|
1) | próżnia | zamknąć() | Służy do zamykania tego skanera. |
2) | wzór | ogranicznik() | Służy do uzyskania wzorca, którego aktualnie używa klasa Scanner do dopasowywania ograniczników. |
3) | Strumień | Znajdź wszystko() | Służy do znalezienia strumienia wyników dopasowania pasujących do podanego ciągu wzorca. |
4) | Strunowy | findInLine() | Służy do znalezienia następnego wystąpienia wzorca zbudowanego z określonego ciągu, ignorując ograniczniki. |
5) | strunowy | znajdźW Horyzoncie() | Służy do znalezienia następnego wystąpienia wzorca zbudowanego z określonego ciągu, ignorując ograniczniki. |
6) | wartość logiczna | maNastępny() | Zwraca wartość true, jeśli ten skaner ma na wejściu inny token. |
7) | wartość logiczna | hasNextBigDecimal() | Służy do sprawdzania, czy następny token na wejściu tego skanera może zostać zinterpretowany jako BigDecimal przy użyciu metody nextBigDecimal(), czy nie. |
8) | wartość logiczna | hasNextBigInteger() | Służy do sprawdzania, czy następny token na wejściu tego skanera może zostać zinterpretowany jako BigDecimal przy użyciu metody nextBigDecimal(), czy nie. |
9) | wartość logiczna | maNextBoolean() | Służy do sprawdzania, czy następny token na wejściu tego skanera może zostać zinterpretowany jako wartość logiczna przy użyciu metody nextBoolean(), czy nie. |
10) | wartość logiczna | maNextByte() | Służy do sprawdzania, czy następny token na wejściu tego skanera może zostać zinterpretowany jako bajt przy użyciu metody nextBigDecimal(), czy nie. |
jedenaście) | wartość logiczna | maNextDouble() | Służy do sprawdzenia, czy następny token na wejściu tego skanera może zostać zinterpretowany jako BigDecimal przy użyciu metody nextByte(), czy nie. |
12) | wartość logiczna | maNextFloat() | Służy do sprawdzania, czy następny token na wejściu tego skanera może zostać zinterpretowany jako Float przy użyciu metody nextFloat(), czy nie. |
13) | wartość logiczna | maNextInt() | Służy do sprawdzania, czy następny token na wejściu tego skanera może zostać zinterpretowany jako int przy użyciu metody nextInt(), czy nie. |
14) | wartość logiczna | maNastępnąLinię() | Służy do sprawdzenia, czy na wejściu tego skanera znajduje się inna linia, czy nie. |
piętnaście) | wartość logiczna | maNextLong() | Służy do sprawdzania, czy następny token na wejściu tego skanera może zostać zinterpretowany jako Long przy użyciu metody nextLong(), czy nie. |
16) | wartość logiczna | maNextShort() | Służy do sprawdzania, czy następny token na wejściu tego skanera może zostać zinterpretowany jako Short przy użyciu metody nextShort(), czy nie. |
17) | Wyjątek IO | ioException() | Służy do uzyskania ostatniego wyjątku IOException zgłoszonego przez odczyt tego skanera. |
18) | Lokalny | lokalny() | Służy do uzyskania ustawień regionalnych klasy Scanner. |
19) | Wynik meczu | mecz() | Służy do uzyskania wyniku dopasowania ostatniej operacji skanowania wykonanej przez ten skaner. |
20) | Strunowy | Następny() | Służy do pobrania kolejnego kompletnego tokena z używanego skanera. |
dwadzieścia jeden) | Duży dziesiętny | następnyDużyDziesiętny() | Skanuje następny token wejścia jako BigDecimal. |
22) | Duża liczba całkowita | następnaBigInteger() | Skanuje następny token wejścia jako BigInteger. |
23) | wartość logiczna | następnyBoolean() | Skanuje następny token wejściowy do wartości logicznej i zwraca tę wartość. |
24) | bajt | następny bajt() | Skanuje następny token wejścia jako bajt. |
25) | podwójnie | następnyDouble() | Skanuje następny token wejścia jako podwójny. |
26) | platforma | następnyFloat() | Skanuje następny token wejścia jako float. |
27) | wew | następnyInt() | Skanuje następny token wejścia jako Int. |
28) | Strunowy | następna linia() | Służy do pobrania ciągu wejściowego, który został pominięty w obiekcie Scanner. |
29) | długi | następnyDługi() | Skanuje następny token wejścia jako długi. |
30) | krótki | następny krótki() | Skanuje następny token wejścia jako krótki. |
31) | wew | źródło() | Służy do uzyskania domyślnej podstawy użycia skanera. |
32) | próżnia | usunąć() | Jest używany, gdy operacja usuwania nie jest obsługiwana przez tę implementację Iteratora. |
33) | Skaner | Resetowanie() | Służy do resetowania używanego skanera. |
3. 4) | Skaner | pominąć() | Pomija dane wejściowe pasujące do określonego wzorca, ignorując ograniczniki |
35) | Strumień | tokeny() | Służy do pobrania strumienia tokenów oddzielonych ogranicznikami z używanego obiektu Scanner. |
36) | Strunowy | doString() | Służy do uzyskania ciągu znaków reprezentującego skaner za pomocą. |
37) | Skaner | użyjDelimiter() | Służy do ustawienia wzorca ograniczającego używanego skanera na określony wzór. |
38) | Skaner | użyj ustawień regionalnych() | Służy do ustawienia obiektu ustawień regionalnych tego skanera na określone ustawienia regionalne. |
39) | Skaner | użyjRadix() | Służy do ustawienia domyślnej podstawy używanego skanera na określoną podstawę. |
Przykład 1
Zobaczmy prosty przykład skanera Java, w którym otrzymujemy pojedyncze dane wejściowe od użytkownika. Tutaj prosimy o ciąg znaków poprzez metodę in.nextLine().
import java.util.*; public class ScannerExample { public static void main(String args[]){ Scanner in = new Scanner(System.in); System.out.print('Enter your name: '); String name = in.nextLine(); System.out.println('Name is: ' + name); in.close(); } }
Wyjście:
Enter your name: sonoo jaiswal Name is: sonoo jaiswal
Przykład 2
import java.util.*; public class ScannerClassExample1 { public static void main(String args[]){ String s = 'Hello, This is JavaTpoint.'; //Create scanner Object and pass string in it Scanner scan = new Scanner(s); //Check if the scanner has a token System.out.println('Boolean Result: ' + scan.hasNext()); //Print the string System.out.println('String: ' +scan.nextLine()); scan.close(); System.out.println('--------Enter Your Details-------- '); Scanner in = new Scanner(System.in); System.out.print('Enter your name: '); String name = in.next(); System.out.println('Name: ' + name); System.out.print('Enter your age: '); int i = in.nextInt(); System.out.println('Age: ' + i); System.out.print('Enter your salary: '); double d = in.nextDouble(); System.out.println('Salary: ' + d); in.close(); } }
Wyjście:
Boolean Result: true String: Hello, This is JavaTpoint. -------Enter Your Details--------- Enter your name: Abhishek Name: Abhishek Enter your age: 23 Age: 23 Enter your salary: 25000 Salary: 25000.0
Przykład 3
import java.util.*; public class ScannerClassExample2 { public static void main(String args[]){ String str = 'Hello/This is JavaTpoint/My name is Abhishek.'; //Create scanner with the specified String Object Scanner scanner = new Scanner(str); System.out.println('Boolean Result: '+scanner.hasNextBoolean()); //Change the delimiter of this scanner scanner.useDelimiter('/'); //Printing the tokenized Strings System.out.println('---Tokenizes String---'); while(scanner.hasNext()){ System.out.println(scanner.next()); } //Display the new delimiter System.out.println('Delimiter used: ' +scanner.delimiter()); scanner.close(); } }
Wyjście:
Boolean Result: false ---Tokenizes String--- Hello This is JavaTpoint My name is Abhishek. Delimiter used: /