Klasa skanera w Javie: rodzaje konstruktorów i metod, jak używać [z przykładami]
Opublikowany: 2020-07-28Każdy, kto pracuje z językiem programowania Java, doskonale zna klasę Scanner w Javie. A dla początkujących programistów Java, którzy nie wiedzą, czym jest klasa Scanner i jak używać klasy Scanner w Javie, ten artykuł jest idealnym wprowadzeniem do niej.
W tym poście zajmiemy się szczegółowym omówieniem klasy Scanner w Javie, jej różnych metod i sposobu ich działania. Jeśli więc nie możesz się doczekać, aby dowiedzieć się więcej o klasie Scanner w Javie, czytaj dalej do końca!
Spis treści
Czym jest klasa Scanner w Javie?
Klasa Scanner w Javie służy przede wszystkim do uzyskiwania danych wejściowych użytkownika. Zawiera go pakiet java.util. Klasa Scanner nie tylko rozszerza klasę Object, ale może również implementować interfejsy Iterator i Closeable. Dzieli dane wejściowe użytkownika na tokeny za pomocą ogranicznika, którym domyślnie jest spacja.
Korzystanie z klasy Scanner jest dość łatwe – najpierw tworzysz obiekt klasy, a następnie używasz dowolnej z dostępnych metod zawartych w dokumentacji klasy Scanner.
Oprócz tego, że jest jednym z najprostszych sposobów uzyskiwania danych wejściowych użytkownika, klasa Scanner jest szeroko używana do analizowania tekstu pod kątem ciągów i typów pierwotnych za pomocą wyrażenia regularnego. Na przykład możesz użyć klasy Scanner, aby uzyskać dane wejściowe dla różnych typów podstawowych, takich jak int, long, double, byte, float i short, żeby wymienić tylko kilka.
Możesz zadeklarować klasę Java Scanner w następujący sposób:

Publiczna klasa końcowa Skaner
rozszerza obiekt
implementuje Iterator<String>
Jeśli chcesz uzyskać instancję klasy Scanner, która odczytuje dane wejściowe użytkownika, musisz przekazać strumień wejściowy (System.in) w konstruktorze klasy Scanner w następujący sposób:
Scanner in = nowy skaner(„Hello upGrad”);
Przeczytaj: 6 najważniejszych powodów, dla których Java jest tak popularna wśród programistów
Jakie są różne konstruktory klasy Scanner?
Oto sześć powszechnie używanych konstruktorów klas Scanner:
- Skaner(źródło pliku) — tworzy nowy skaner do generowania wartości zeskanowanych z określonego pliku.
- Scanner (źródło InputStream) — tworzy nowy skaner w celu wygenerowania wartości zeskanowanych z określonego strumienia wejściowego.
- Scanner(Readable source) — tworzy nowy skaner, który dostarcza wartości zeskanowane z określonego źródła.
- Scanner (źródło ciągu) — tworzy nowy skaner w celu wygenerowania wartości zeskanowanych z określonego ciągu.
- Scanner (źródło ReadableByteChannel) — tworzy nowy skaner w celu wygenerowania wartości zeskanowanych z określonego kanału.
- Scanner(Źródło ścieżki) — tworzy nowy skaner w celu wygenerowania wartości zeskanowanych z określonego pliku.
Jakie są różne metody klasy Scanner?
Podobnie jak w przypadku konstruktorów klas Scanner, istnieje również obszerny zestaw metod klasy Scanner, z których każda służy unikalnemu celowi. Możesz użyć metod klasy Scanner dla różnych typów danych. Poniżej znajduje się lista najczęściej używanych metod klasy Scanner:
- void [close()] – Ta metoda służy do zamykania skanera.
- pattern [delimiter()] — ta metoda pomaga uzyskać wzorzec, który jest aktualnie używany przez klasę Scanner, aby dopasować ograniczniki.
- Stream<MatchResult> [findAll()] — daje strumień wyników dopasowania, które pasują do określonego ciągu wzorcowego.
- String [findInLine()] – Pomaga znaleźć kolejne wystąpienie wzorca utworzonego z określonego ciągu. Ta metoda nie uwzględnia ograniczników.
- String [nextLine()] — służy do pobrania ciągu wejściowego, który został pominięty w obiekcie Scanner.
- IOException [ioException()] — ta metoda pomaga uzyskać wyjątek IOException ostatnio wyświetlany przez czytelny skaner.
- Locale [locale()] — Pobiera Locale klasy Scanner.
- MatchResult [match()] — oferuje wynik dopasowania ostatniej operacji skanowania wykonanej przez skaner.
- BigDecimal [nextBigDecimal()] — ta metoda służy do skanowania następnego tokenu danych wejściowych jako BigDecimal.
- BigInteger [nextBigInteger()] — ta metoda skanuje następny token danych wejściowych jako BigInteger.
- byte [nextByte()] — skanuje następny token danych wprowadzonych przez użytkownika jako wartość bajtową.
- double [nextDouble()] — skanuje następny token danych wejściowych użytkownika jako wartość podwójną.
- float [nextFloat()] — ta metoda skanuje następny token danych wejściowych jako wartość zmiennoprzecinkową.
- int [nextInt()] — ta metoda służy do skanowania następnego tokenu danych wejściowych jako wartości Int.
- logiczne:
- [hasNext()] – ta metoda zwraca wartość true, jeśli skaner ma inny token w danych wejściowych użytkownika.
- [hasNextBigDecimal()] — ta metoda sprawdza, czy następny token w danych wejściowych skanera może być interpretowany jako BigDecimal przy użyciu metody nextBigDecimal().
- [hasNextBoolean()] – Sprawdza, czy następny token w danych wejściowych skanera może być interpretowany jako Boolean przy użyciu metody nextBoolean().
- [hasNextByte()] — Sprawdza, czy następny token w danych wejściowych skanera może być interpretowany jako Byte przy użyciu metody nextBigDecimal().
- [hasNextFloat()] — Sprawdza, czy następny token w danych wejściowych skanera może być interpretowany jako Float przy użyciu metody nextFloat().
- [hasNextInt()] — Sprawdza, czy następny token w danych wejściowych skanera może być interpretowany jako Int przy użyciu metody nextInt().
Sprawdź: Wynagrodzenie programisty Java w Indiach

Jak korzystać z klasy Scanner w Javie?
Jak wspomnieliśmy wcześniej, korzystanie z klasy Scanner w Javie jest dość łatwe. Poniżej znajduje się przykład pokazujący, jak zaimplementować klasę Scanner za pomocą metody nextLine() :
import java.util.*;
public class ScannerPrzykład {
public static void main(String args[]){
Skaner w = nowy Skaner(System.in);
System.out.print("Wprowadź swoje imię i nazwisko: ");
Nazwa ciągu = in.nextLine();
System.out.println(„Nazwa to: ” + nazwa);
ogrodzić();
}
}
Jeśli uruchomisz ten program, dostarczy następujące dane wyjściowe:

Wpisz swoje imię: John Hanks
Imię i nazwisko to: John Hanks
Przeczytaj także: Co to jest rzutowanie typów w Javie | Zrozumienie rzutowania typu jako początkujący
Zawijanie
W tym artykule omówiono podstawy klasy Scanner w Javie. Jeśli zaznajomisz się z konstrukcjami i metodami klasy Scanner, z czasem i nieustanną praktyką opanujesz sztukę używania klasy Scanner w programach Java.
Jeśli chcesz dowiedzieć się więcej na temat Java, pełnego stosu oprogramowania, sprawdź upGrad i IIIT-B's PG Diploma in Full-stack Software Development, który jest przeznaczony dla pracujących profesjonalistów i oferuje ponad 500 godzin rygorystycznych szkoleń, ponad 9 projektów i zadania, status absolwentów IIIT-B, praktyczne praktyczne projekty zwieńczenia i pomoc w pracy z najlepszymi firmami.