Jak używać skanera w Javie

Jak używać skanera w Javie
Skaner w Javie to klasa w Javie.pakiet UTIL. Ta klasa ma na celu odczytanie wejścia z łańcucha, klawiatury, pliku lub gniazda sieciowego. Ten artykuł koncentruje się tylko na odczytaniu danych wejściowych z klawiatury i wyświetlaniu wyniku w oknie terminalu. Podobne pomysły można użyć do odczytania danych wejściowych z kanału pliku lub sieciowego. Skaner nie drukuje do okna terminala. Aby wydrukować na terminalu, użyj systemu.OUT OZT. Używanie tego obiektu jest proste do wydrukowania na terminalu, jak pokazano poniżej.

Aby skorzystać z klasy skanera, musi zostać zaimportowany najpierw. Następnie obiekt musi zostać utworzony z niego instancję. Po użyciu obiektu skanera musi zostać zamknięty. Obiekt strumienia wejściowego, który reprezentuje klawiaturę to system.W. Skaner ma wiele metod. Tylko te powszechnie używane zostaną wyjaśnione w tym artykule.

Treść artykułu

  • Proste użycie klasy skanera
  • Plucie linii wejściowej na wartości
  • Odczyt i sprawdzanie prymitywnych typów danych
  • Przypisanie tokenu wejściowego do zmiennej
  • Wniosek

Proste użycie klasy skanera

Poniższy kod prosi użytkownika o wpisanie zdania, a następnie wyświetla zdanie:

Importuj Java.Util.Skaner;
Klasa publiczna THEClass
public static void main (string [] args)
Scanner Scanobj = nowy skaner (system.W);
System.na zewnątrz.println („wpisz zdanie i naciśnij Enter:”);
String zdanie = skanobj.NextLine ();
System.na zewnątrz.println (zdanie);
Scanobj.zamknąć();

Pierwsza linia importuje klasę skanera. W głównej funkcji pierwszy wiersz tworzy obiekt skanera za pomocą „Systemu.w „obiekt dla klawiatury. Gdy tylko obiekt skanera zostanie utworzony, zaczyna czekać na dane wejściowe. Następny wiersz drukuje instrukcję, prosząc użytkownika o wpisanie zdania. Wiersz następujący w kodzie używa metody NextLine () obiektu skanera do odczytania zdania użytkownika po naciśnięciu Enter. Linia po, w kodzie, przedrukuje zdanie w oknie terminalu. Ostatnia linia zamyka obiekt skanera.

Plucie linii wejściowej na wartości

Poniższy kod dzieli linię wejściową na słowa (tokeny), używając przestrzeni jako ogranicznika:

Importuj Java.Util.Skaner;
Klasa publiczna THEClass
public static void main (string [] args)
Scanner Scanobj = nowy skaner (system.W);
System.na zewnątrz.println („wpisz linię tokenów i naciśnij Enter:”);
While (Scanobj.HASNEXT ())
System.na zewnątrz.println (skanobj.Następny());

Scanobj.zamknąć();

HASNEXT () i Next () to dwie inne metody obiektu skanera. Kiedy obiekt skanera odczytuje linię, zachowuje ją. następny () dostęp do następnego tokena (słowo). HASNEXT () zwraca true, jeśli jest jakiś inny token, który nie jest jeszcze dostępny.

Niestety, nadal oczekuje się, że użytkownik wpisuje dane wejściowe w celu podziału i ponownego oddziaływania z tym kodem. Aby to wszystko zakończyć, naciśnij Ctrl+Z, a powinieneś wrócić na wiersz polecenia.

W powyższym kodzie ogranicza tokeny w przestrzeni. Można użyć kolejnej postaci. Poniższy kod korzysta z przecinka. Nie zapomnij nacisnąć Ctrl+Z, aby zakończyć pętlę, jeśli przetestujesz kod.

Importuj Java.Util.Skaner;
Klasa publiczna THEClass
public static void main (string [] args)
Scanner Scanobj = nowy skaner (system.W);
System.na zewnątrz.println („wpisz linię tokenów i naciśnij Enter:”);
Scanobj.UseLimiter („,”);
While (Scanobj.HASNEXT ())
System.na zewnątrz.println (skanobj.Następny());

Scanobj.zamknąć();

Jeśli przetestowałeś kod, zauważyłeś, że przestrzenie w tokenach zostały uwzględnione jako część tokenów (wyjście). Wyrażenie, skanobj.używaneELimiter („”); wpisane po odczytaniu linii wejściowej; To jest to, co sprawia, że ​​przecinek, ogranicznik.

Odczyt i sprawdzanie prymitywnych typów danych

Metoda NextBoolean ()

W poniższym kodzie oczekuje się, że użytkownik wpisuje „true” lub „false” bez cytatów, a następnie naciśnij klawisz Enter, jeśli użytkownik wpisuje coś innego, na przykład „tak” lub „nie”, komunikat o błędzie będzie komunikat o błędzie wystawiany.

Importuj Java.Util.Skaner;
Klasa publiczna THEClass
public static void main (string [] args)
System.na zewnątrz.Drukuj ("czy jesteś powyżej 24? ");
Scanner Scanobj = nowy skaner (system.W);
boolean bl = Scanobj.Nextboolean ();
if (bl == true)
System.na zewnątrz.println („masz ponad 24”);

else if (bl == false)
System.na zewnątrz.println („jesteś poniżej 24”);

Scanobj.zamknąć();

Ponieważ Java wyda komunikat o błędzie, o ile dane wejściowe nie jest prawdziwe lub fałszywe, „else, jeśli” został użyty zamiast „else”.

Różnica między metodami, drukowaniem i println polega na tym, że druk oczekuje wejścia na bieżącą linię, a println oczekuje wejścia na następną linię.

Metoda NextByte ()

Z zestawem znaków ASCII postać to jeden bajt. Jednak w przypadku niektórych wschodnich zestawów znaków postać może składać się z więcej niż jednego bajtu. Niezależnie od zestawu znaków metoda NextByte odczytuje i weryfikuje następny bajt wejścia. W tym celu można użyć następującego kodu:

Importuj Java.Util.Skaner;
Klasa publiczna THEClass
public static void main (string [] args)
System.na zewnątrz.wydrukuj („Numer typu < 128, press Enter: ");
Scanner Scanobj = nowy skaner (system.W);
BYTE BT = SCANOBJ.NextByte ();
System.na zewnątrz.println (bt);
Scanobj.zamknąć();

Jeśli dla tego kodu wprowadzono liczbę większą niż 127 lub znak alfabetu, wydany zostanie komunikat o błędzie.

Metoda NextInt ()

Następny token liczb całkowitych jako wejściowy można również zatwierdzić i zaakceptować. Można użyć następującego kodu:

Importuj Java.Util.Skaner;
Klasa publiczna THEClass
public static void main (string [] args)
System.na zewnątrz.print („Wprowadź dowolną liczbę całkowitą:”);
Scanner Scanobj = nowy skaner (system.W);
int num = scanobj.NextIt ();
System.na zewnątrz.println (num);
Scanobj.zamknąć();

Wyjmowane przestrzenie wiodących lub spustowe zostały usunięte. W przypadku tego kodu każda wartość liczb całkowita, w tym wartości większe niż 127, zostanie zaakceptowana. Za pomocą metod NextXXX () Po zakończeniu sprawdzania sprawdzania poprawności wydawany jest komunikat o błędzie.

Metoda NextBINTEGER ()

Wygląda na to, że inżynierowie oprogramowania nigdy nie przestaną wymyślać nowych rzeczy. Duża liczba całkowita to liczba całkowita, której wartość jest znacznie większa niż wartość liczb całkowita. Jednak w przypadku Java można go odczytać w taki sam sposób, jak liczba całkowita. Poniższy kod to ilustruje:

Importuj Java.Util.Skaner;
Importuj Java.matematyka.Biginteger;
Klasa publiczna THEClass
public static void main (string [] args)
System.na zewnątrz.println („Wprowadź dowolną liczbę całkowitą dla dużej liczby całkowitej:”);
Scanner Scanobj = nowy skaner (system.W);
BigInteger num = scanobj.NextBigInteger ();
System.na zewnątrz.println (num);
Scanobj.zamknąć();

Zwróć uwagę na oświadczenie importu: „Importuj Java.matematyka.Biginteger; ”. Zwróć również uwagę, że wielki typ liczby całkowitej rozpoczyna się od wielki B, a nie z małą literą B.

Metoda NextFloat ()

Następny token zmiennoprzecinkowy jako dane wejściowe można również zweryfikować i zaakceptować. Można użyć następującego kodu:

Importuj Java.Util.Skaner;
Klasa publiczna THEClass
public static void main (string [] args)
System.na zewnątrz.print („Enter dowolne float:”);
Scanner Scanobj = nowy skaner (system.W);
float num = scanobj.Nextfloat ();
System.na zewnątrz.println (num);
Scanobj.zamknąć();

Przykład liczby zmiennoprzecinkowej to 23.456. Wyjmowane przestrzenie wiodących lub spustowe zostały usunięte.

NextDouble ()

Następny podwójny token jako dane wejściowe można również zweryfikować i zaakceptować. Można użyć następującego kodu:

Importuj Java.Util.Skaner;
Klasa publiczna THEClass
public static void main (string [] args)
System.na zewnątrz.drukuj („Wprowadź dowolny podwójny:”);
Scanner Scanobj = nowy skaner (system.W);
Double Num = Scanobj.NextDouble ();
System.na zewnątrz.println (num);
Scanobj.zamknąć();

Przykład podwójnej liczby to 23.456. Podwójna liczba różni się od pływaka, ponieważ ma mniej marginesu błędu. Wyjmowane przestrzenie wiodących lub spustowe zostały usunięte.

Metoda NextLine ()

Metoda NextLine () dotyczy łańcucha. Jeśli ciąg jest linią wejściową z klawiatury po naciśnięciu ENTER, może mieć nowy charakter „\ n”. Można użyć następującego kodu:

Importuj Java.Util.Skaner;
Klasa publiczna THEClass
public static void main (string [] args)
System.na zewnątrz.println („Wprowadź linię mającą \\ n:”);
Scanner Scanobj = nowy skaner (system.W);
String str = skanobj.NextLine ();
System.na zewnątrz.println (str);
Scanobj.zamknąć();

Zauważ, że typ ciągów rozpoczyna się od wielkimi s, a nie małymi literami s.

Metody NextLine (), HasNext () i Next () zostały wcześniej użyte w tym artykule. Skaner ma inne metody i inne prymitywne metody danych - patrz później.

Przypisanie wejścia do zmiennej

Wejście można przypisać do zmiennej, jak pokazuje następujący kod:

Importuj Java.Util.Skaner;
Klasa publiczna THEClass
public static void main (string [] args)
Scanner Scanobj = nowy skaner (system.W);
System.na zewnątrz.print („Wprowadź nazwę:”);
Nazwa ciągu = Scanobj.NextLine ();
System.na zewnątrz.drukuj („Wprowadź wiek:”);
int wiek = skanobj.NextIt ();
System.na zewnątrz.drukuj („Wprowadź wynagrodzenie:”);
podwójna pensja = Scanobj.NextDouble ();
System.na zewnątrz.println („nazwa:” + nazwa + ”, wiek:„ + wiek + ”, pensja:„ + wynagrodzenie);
Scanobj.zamknąć();

Wniosek

Skaner w Javie to klasa w Javie.pakiet UTIL. Ta klasa ma na celu odczytanie wejścia z łańcucha, klawiatury, pliku lub gniazda sieciowego. Ten artykuł skoncentrował się głównie na odczytaniu danych wejściowych z klawiatury i wyświetlaniu wyniku w oknie terminalu. Podobne pomysły mogą być użyte do odczytania danych wejściowych z seria, pliku lub kanału sieciowego.

Aby odczytać całą linię wprowadzania klawiatury, użyj metody NextLine (). Linia jako ciąg można podzielić na tokeny za pomocą metod HASNEXT () i Next () oraz pętli pobytu. Domyślnym ogranicznikiem podziału jest przestrzeń, ale programista może wybrać inny ogranicznik. Nie zapomnij zrobić ctrl+z, aby zatrzymać pętlę pobytu, jeśli to konieczne. Usunięcie przestrzeni wiodących i spustowych można wykonać przy użyciu innych programów, które nie zostały rozwiązane w tym artykule. Walidacja tokenów można również wykonać przy użyciu innych programów, które nie zostały rozwiązane w tym artykule.

Wartości prymitywne można odczytać za pomocą Nextboolean (), NextByte (), NextItt () itp. Te metody NextXXX () wykonują sprawdzanie poprawności, a także usuwają przestrzenie wiodące i zatokowe.

Skaner Java ma o wiele więcej metod. Jednak podstawowe zastosowanie skanera zostało wyjaśnione w tym artykule. Wybór tokena odbywa się faktycznie przy użyciu technik wyrażania regularnych. Zastosowanie technik ekspresji regularnej jest dyskusją, przez pewien czas.