Wielokrotne wprowadzanie ciągów w Javie za pomocą skanera [z przykładem kodowania]

Opublikowany: 2021-02-05

Spis treści

Wstęp

W pakiecie java.util skaner jest jedną z klas, które pomagają w zbieraniu wielu danych wejściowych typów prymitywnych, takich jak double, integer, stringi itp. Chociaż nie jest to skuteczny sposób odczytywania danych wejściowych w programie Java, w którym działa czas jako ograniczenie jest to niewątpliwie jeden z najłatwiejszych sposobów zbierania wielu danych wejściowych od użytkownika. W tym blogu dowiesz się, jak zbierać dane wejściowe z wielu ciągów od użytkownika w programie Java przy użyciu klasy skanera.

Metody pobierania wielu danych wejściowych za pomocą skanera

Musisz zaimportować pakiet java.util do programu przed użyciem klasy Scanner. W poniższej tabeli wymieniono metody używane do pobierania wielu danych wejściowych różnych typów od użytkownika w programie Java.

metoda Wejścia
następnyInt() Liczba całkowita
następnyFloat() Pływak
następnyPodwójny() Podwójnie
następnyDługi() Długi
następnyKrótki() Krótki
Następny() Pojedyncze słowo
następnaLinia() Linia strun
następnaBoolean() Boole'a

Korzystanie z metody Java nextLine()

Metoda java.util.Scanner.nextLine() zwraca wiersz, który został pominięty przez przesunięcie skanera poza bieżący wiersz. Jeśli separator linii jest podany na końcu bieżącego wiersza, ta metoda wyklucza go i zwraca resztę ciągu z bieżącego wiersza. Skaner jest ustawiany na początku następnego wiersza i odczytuje cały ciąg, łącznie z białymi znakami słów.

Składnia metody nextLine() wygląda następująco:

Ciąg publiczny nextLine()

Ta metoda zgłasza następujące dwa wyjątki:

  • NoSuchElementException — jeśli ciąg jest pusty lub nie znaleziono wiersza.
  • IllegalStateException — jeśli skaner jest zamknięty.

Przykład

Poniższy przykład ilustruje, w jaki sposób metoda java.util.Scanner.nextLine() zbiera wiele danych wejściowych od użytkownika.

importuj java.util.Scanner;

klasa publiczna SacnnerDemoMultipleString

{

public static void main(String[] args)

{

Demo skanera = nowy skaner(System.in);

System.out.print("Proszę wprowadzić wiele danych, które chcesz wydrukować: ");

//pobiera liczbę całkowitą

String[] string = new String [demo.nextInt()];

//zużywanie <enter> z wejścia powyżej

demo.nextLine();

for (int i = 0; i < string.length; i++)

{

string[i] = demo.nextLine();

}

System.out.println("\nWprowadziłeś następujące dane wejściowe: ");

//for-each pętla do wydrukowania ciągu

for(String string: string)

{

System.out.println(str);

// zamknij skaner

skaner.zamknij();

}

}

}

Powyższy program wyświetli następujące dane wyjściowe

Wprowadź wiele danych wejściowych, które chcesz wydrukować: 7

Misza

Złupić

Robert

Harvey

Jill

Rachel

Jennifer

Wprowadziłeś następujące dane:

Misza

Złupić

Robert

Harvey

Jill

Rachel

Jennifer

Korzystanie z metody Java nextInt()

Metoda java.util.Scanner.nextInt() skanuje dane wejściowe podane przez użytkownika jako liczbę całkowitą. Jeśli zostanie znaleziona liczba całkowita, skaner przechodzi poza pasujące dane wejściowe.

Składnia metody nextInt() jest następująca:

Public int nextInt()

Ta metoda zgłasza następujące trzy wyjątki:

  • InputMismatchException — jeśli następny token nie pasuje do wyrażenia regularnego liczby całkowitej lub jeśli następny token jest poza zakresem.
  • NoSuchElementException — jeśli dane wejściowe są wyczerpane.
  • IllegalStateException — jeśli skaner jest zamknięty.

Przykład

Poniższy przykład ilustruje sposób, w jaki metoda java.util.Scanner.nextInt() zbiera wiele danych wejściowych od użytkownika.

// Program Java do skanowania liczb całkowitych za pomocą Skanera

// klasa i wypisz ich średnią.

importuj java.util.Scanner;

public class ScannerDemoInteger

{

public static void main(String[] args)

{

Demo skanera = nowy skaner(System.in);

// Zainicjuj sumę i liczbę elementów wejściowych

suma int = 0, liczba = 0;

// Sprawdź, czy występuje wartość całkowita

while (demo.hasNextInt())

{

// Skanuj wartość całkowitą

int liczba = demo.nextInt();

suma += liczba;

liczyć++;

}

int średnia = suma / liczba;

System.out.println("Średnia: " + średnia);

}

}

Powyższy program jest zasilany następującymi danymi wejściowymi:

101

223

238

892

99

500

728

Powyższy program wypisze następujące dane wyjściowe:

Średnia: 397

Przeczytaj także: Projekt Java MVC

Korzystanie z metody nextDouble() w języku Java

Metoda java.util.Scanner.nextDouble() skanuje dane wejściowe podane przez użytkownika jako podwójne. Jeśli zostanie znalezione wyrażenie regularne zmiennoprzecinkowe, skaner przejdzie poza pasujące dane wejściowe.

Składnia metody nextInt() jest następująca:

public double nextDouble()

Ta metoda zgłasza następujące trzy wyjątki:

  • InputMismatchException — jeśli następny token nie pasuje do wyrażenia regularnego zmiennoprzecinkowego lub jeśli następny token jest poza zakresem.
  • NoSuchElementException — jeśli dane wejściowe są wyczerpane.
  • IllegalStateException — jeśli skaner jest zamknięty.

Przykład

W przykładzie pokazano, jak metoda java.util.Scanner.nextDouble() zbiera wiele danych wejściowych od użytkownika.

// program Java do skanowania float za pomocą skanera

importuj java.util.Scanner;

public class ScannerDoubleRegularExpression {

public static void main(String[] args) {

Nowy ciąg = „Dzień dobry! 3 + 3,0 = 6 prawda”;

// napisz nowy obiekt skanera z określonym String Object

Demo skanera = nowe skanery;

// użyj ustawień regionalnych US, aby móc zidentyfikować dublety w łańcuchu

demo.useLocale(Locale.US);

// wyszukaj następny podwójny token i wydrukuj go

while (demo.hasNext()) {

// jeśli następny jest double, print found i float wyrażenie regularne

if (demo.maNextDouble()) {

System.out.println("Znaleziono:" + demo.nextDouble());

}

// jeśli nie znaleziono podwójnego wyrażenia regularnego, wypisz „Nie znaleziono” i token

System.out.println("Nie znaleziono:" + demo.next());

}

// zamknij skaner

skaner.zamknij();

}

}

Powyższy program da w wyniku następujące dane wyjściowe:

Nie znaleziono: dobry

Nie znaleziono: rano!

Znaleziono: 3,0

Nie znaleziono: +

Znaleziono: 3,0

Nie znaleziono: =

Znaleziono: 6,0

Nie znaleziono: prawda

Ucz się kursów rozwoju oprogramowania online z najlepszych światowych uniwersytetów. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.

Wniosek

Na przykład kody podane na tym blogu są celem i mogą być modyfikowane zgodnie z indywidualnymi potrzebami. Jeśli chcesz dowiedzieć się więcej o tworzeniu oprogramowania w języku Java i pełnym stosie, sprawdź program Executive PG UpGrad i IIIT-B w zakresie tworzenia pełnego stosu oprogramowania, który jest przeznaczony dla pracujących profesjonalistów i oferuje ponad 500 godzin rygorystycznego szkolenia, 9+ projekty i zadania, status absolwentów IIIT-B, praktyczne praktyczne projekty zwieńczenia i pomoc w pracy z najlepszymi firmami.

Co to jest klasa Scanner w Javie?

Klasa Scanner umożliwia odczytywanie wartości z klawiatury bez używania danych wejściowych konsoli Java. Wejście konsoli Java jest wolne, podobnie jak przekierowanie. Skaner jest szybszy i wygodniejszy, dlatego należy go używać zamiast danych wejściowych konsoli Java. Scanner używa zwykłego strumienia wejściowego Javy, dzięki czemu można go łączyć z innymi parserami. Skaner jest również łatwiejszy w użyciu niż wejście konsoli Java. Scanner ma trzy główne podklasy, a mianowicie BufferedReader, InputStreamReader i FileReader. Najbardziej ogólnym z nich jest BufferedReader. BufferedReader może czytać wszystko, co może być odczytane przez InputStreamReader, i ma jedną dużą zaletę: bufor. Bufor może przechowywać jedną linię na raz. Strumień wejściowy nie ma w ogóle bufora: kiedy wywołujesz next(), zwraca wartość. Oznacza to, że musisz zebrać wartości, zanim będziesz mógł cokolwiek z nimi zrobić. Skaner zrobi to za Ciebie.

Co to jest konstruktor ciągów w Javie?

Konstruktor ciągów to nowy typ klasy do tworzenia ciągów. Klasa konstruktora ciągów została wprowadzona w Javie od wersji 1.3. Pozwala na tworzenie ciągu poprzez łączenie kilku ciągów i automatycznie zmienia swój rozmiar, gdy dodasz do niego więcej ciągów. W porównaniu z konkatenacją ciągów, używanie konstruktora ciągów jest szybsze i elastyczne, choć mniej czytelne. Obiekty StringBuilder to obiekty używane do tworzenia wartości String. Obiekty StringBuilder mają wiele metod.

Co to jest InputStreamReader w Javie?

InputStreamReader odczytuje strumień znaków ze strumienia wejściowego i dekoduje je do określonego kodowania znaków. Zapewnia łatwy sposób konwertowania strumieni znaków z jednego kodowania na inne. InputStreamReader odczytuje bajty ze strumienia bazowego i konwertuje je na znaki przy użyciu określonego kodowania zestawu znaków. Jest to klasa używana do konwersji danych strumienia bajtów na dane strumienia znaków. Strumień bajtów reprezentuje dane binarne, a strumień znaków reprezentuje tekst.