Eingabe mehrerer Zeichenfolgen in Java mit Scanner [mit Codierungsbeispiel]

Veröffentlicht: 2021-02-05

Inhaltsverzeichnis

Einführung

Im java.util-Paket ist der Scanner eine der Klassen, die beim Sammeln mehrerer Eingaben der primitiven Typen wie Double, Integer, Strings usw. helfen. Dies ist jedoch keine effiziente Methode zum Lesen von Eingaben in einem Java-Programm, in dem die Zeit wirkt Als Einschränkung ist dies zweifellos eine der einfachsten Möglichkeiten, mehrere Eingaben vom Benutzer zu sammeln. In diesem Blog erfahren Sie, wie Sie mithilfe der Scanner-Klasse in einem Java-Programm mehrere Zeichenfolgeneingaben vom Benutzer sammeln.

Methoden zum Erfassen mehrerer Eingaben mit Scanner

Sie müssen das java.util-Paket in ein Programm importieren, bevor Sie die Scanner-Klasse verwenden. Die folgende Tabelle listet die Methoden auf, die verwendet werden, um mehrere Eingaben verschiedener Typen vom Benutzer in einem Java-Programm entgegenzunehmen.

Methode Eingänge
nextInt() Ganze Zahl
nextFloat() Schweben
nextDouble() Doppelt
nextLong() Lang
nextShort() Kurz
nächste() Einzelnes Wort
nächste Zeile() Reihe von Saiten
nextBoolean() Boolesch

Verwenden der Java-nextLine()-Methode

Die Methode java.util.Scanner.nextLine() gibt die Zeile zurück, die übersprungen wurde, indem der Scanner über die aktuelle Zeile hinaus bewegt wurde. Wenn am Ende der aktuellen Zeile ein Zeilentrennzeichen angegeben ist, schließt diese Methode es aus und gibt den Rest der Zeichenfolge aus der aktuellen Zeile zurück. Der Scanner wird auf den nächsten Zeilenanfang gesetzt und liest die gesamte Zeichenfolge, einschließlich der Leerzeichen der Wörter.

Die Syntax für die Methode nextLine() lautet wie folgt:

Öffentlicher String nextLine()

Diese Methode löst die folgenden zwei Ausnahmen aus:

  • NoSuchElementException – Wenn der String leer ist oder keine Zeile gefunden wird.
  • IllegalStateException – Wenn der Scanner geschlossen ist.

Beispiel

Das folgende Beispiel zeigt, wie die Methode java.util.Scanner.nextLine() mehrere Eingaben vom Benutzer sammelt.

java.util.Scanner importieren;

öffentliche Klasse SacnnerDemoMultipleString

{

public static void main(String[] args)

{

Scanner-Demo = neuer Scanner (System.in);

System.out.print(“Bitte geben Sie mehrere Eingaben ein, die Sie drucken möchten: “);

// nimmt eine ganzzahlige Eingabe

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

//Verbrauch der <Eingabe> von der obigen Eingabe

demo.nextLine();

for (int i = 0; i < string.länge; i++)

{

string[i] = demo.nextLine();

}

System.out.println(“\nSie haben folgende Eingabe gemacht: “);

//for-each-Schleife zum Drucken der Zeichenfolge

for(String str: string)

{

System.out.println(str);

// Schließen Sie den Scanner

scanner.close();

}

}

}

Das obige Programm gibt die folgende Ausgabe aus

Bitte geben Sie mehrere Eingaben ein, die Sie drucken möchten: 7

Mischa

Harry

Robert

Harvey

Jill

Rachel

Jennifer

Sie haben folgende Eingabe gemacht:

Mischa

Harry

Robert

Harvey

Jill

Rachel

Jennifer

Verwenden der Java nextInt () -Methode

Die Methode java.util.Scanner.nextInt() scannt die vom Benutzer bereitgestellte Eingabe als Ganzzahl. Wenn eine Ganzzahl gefunden wird, geht der Scanner über die übereinstimmende Eingabe hinaus.

Die Syntax für die Methode nextInt() lautet wie folgt:

Public int nextInt()

Diese Methode löst die folgenden drei Ausnahmen aus:

  • InputMismatchException – Wenn das nächste Token nicht mit dem ganzzahligen regulären Ausdruck übereinstimmt oder wenn das nächste Token außerhalb des Bereichs liegt.
  • NoSuchElementException – Wenn die Eingabe erschöpft ist.
  • IllegalStateException – Wenn der Scanner geschlossen ist.

Beispiel

Das folgende Beispiel zeigt, wie die Methode java.util.Scanner.nextInt() mehrere Eingaben vom Benutzer sammelt.

// Java-Programm zum Scannen von Ganzzahlen mit Scanner

// Klasse und drucke ihren Mittelwert.

java.util.Scanner importieren;

öffentliche Klasse ScannerDemoInteger

{

public static void main(String[] args)

{

Scanner-Demo = neuer Scanner (System.in);

// Summe und Anzahl der Eingabeelemente initialisieren

int summe = 0, count = 0;

// Prüfen, ob ein ganzzahliger Wert vorhanden ist

während (demo.hasNextInt())

{

// Scanne einen ganzzahligen Wert

int num = demo.nextInt();

Summe += Zahl;

zählen++;

}

int mean = Summe / Anzahl;

System.out.println("Mittelwert: " + Mittelwert);

}

}

Das obige Programm wird mit folgender Eingabe gefüttert:

101

223

238

892

99

500

728

Das obige Programm gibt die folgende Ausgabe aus:

Durchschnitt: 397

Lesen Sie auch: Java MVC-Projekt

Verwenden der Java-nextDouble()-Methode

Die Methode java.util.Scanner.nextDouble() scannt die vom Benutzer bereitgestellte Eingabe als Double. Wenn ein regulärer Float-Ausdruck gefunden wird, geht der Scanner über die übereinstimmende Eingabe hinaus.

Die Syntax für die Methode nextInt() lautet wie folgt:

öffentliches Double nextDouble()

Diese Methode löst die folgenden drei Ausnahmen aus:

  • InputMismatchException – Wenn das nächste Token nicht mit dem regulären Float-Ausdruck übereinstimmt oder wenn das nächste Token außerhalb des Bereichs liegt.
  • NoSuchElementException – Wenn die Eingabe erschöpft ist.
  • IllegalStateException – Wenn der Scanner geschlossen ist.

Beispiel

Das Beispiel zeigt, wie die Methode java.util.Scanner.nextDouble() mehrere Eingaben vom Benutzer sammelt.

// Java-Programm zum Scannen von Gleitkommazahlen mit Scanner

java.util.Scanner importieren;

öffentliche Klasse ScannerDoubleRegularExpression {

public static void main(String[] args) {

Zeichenfolge neu = „Guten Morgen! 3 + 3,0 = 6 wahr“;

// schreibe ein neues Scanner-Objekt mit dem angegebenen String-Objekt

Scanner-Demo = neue(r) Scanner;

// US-Locale verwenden, um Doubles in der Zeichenfolge identifizieren zu können

demo.useLocale(Locale.US);

// suche das nächste doppelte Token und drucke es

while (demo.hasNext()) {

// wenn das nächste ein Double ist, drucke gefunden und den regulären Float-Ausdruck

if (demo.hasNextDouble()) {

System.out.println(“Gefunden:” + demo.nextDouble());

}

// Wenn kein doppelter regulärer Ausdruck gefunden wird, drucke „Not Found“ und das Token

System.out.println(“Nicht gefunden:” + demo.next());

}

// Schließen Sie den Scanner

scanner.close();

}

}

Das obige Programm führt zu folgender Ausgabe:

Nicht gefunden: Gut

Nicht gefunden: Morgen!

Gefunden: 3.0

Nicht gefunden: +

Gefunden: 3.0

Nicht gefunden: =

Gefunden: 6.0

Nicht gefunden: wahr

Lernen Sie Softwareentwicklungskurse online von den besten Universitäten der Welt. Verdienen Sie Executive PG-Programme, Advanced Certificate-Programme oder Master-Programme, um Ihre Karriere zu beschleunigen.

Fazit

Beispielsweise sind die in diesem Blog angegebenen Codes der Zweck und können gemäß den Bedürfnissen einer Person geändert werden. Wenn Sie mehr über Java- und Full-Stack-Softwareentwicklung erfahren möchten, schauen Sie sich das Executive PG-Programm in Full-Stack-Softwareentwicklung von upGrad & IIIT-B an, das für Berufstätige konzipiert ist und mehr als 500 Stunden strenges Training bietet, 9+ Projekte und Aufgaben, IIIT-B-Alumni-Status, praktische praktische Abschlussprojekte und Arbeitsunterstützung bei Top-Unternehmen.

Was ist die Scanner-Klasse in Java?

Mit der Scanner-Klasse können Sie Werte von der Tastatur lesen, ohne die Konsoleneingabe von Java zu verwenden. Die Konsoleneingabe von Java ist langsam, ebenso die Umleitung. Scanner ist schneller und bequemer, daher sollte Scanner anstelle der Konsoleneingabe von Java verwendet werden. Scanner verwendet den regulären Eingabestrom von Java, sodass er mit anderen Parsern verkettet werden kann. Scanner ist auch einfacher zu verwenden als die Konsoleneingabe von Java. Scanner hat drei Hauptunterklassen, nämlich BufferedReader, InputStreamReader und FileReader. Das allgemeinste ist BufferedReader. BufferedReader kann alles lesen, was von InputStreamReader gelesen werden kann, und es hat einen großen Vorteil: Puffer. Der Puffer kann jeweils eine Zeile enthalten. Ein Eingabestream hat überhaupt keinen Puffer: Wenn Sie next() aufrufen, gibt es den Wert zurück. Das bedeutet, dass Sie die Werte sammeln müssen, bevor Sie etwas damit anfangen können. Scanner erledigt das für Sie.

Was ist ein String-Builder in Java?

Ein String Builder ist ein neuer Klassentyp zum Erstellen eines Strings. Die String-Builder-Klasse wird in Java ab Version 1.3 eingeführt. Sie können eine Zeichenfolge erstellen, indem Sie eine Reihe von Zeichenfolgen verketten, und die Größe wird automatisch angepasst, wenn Sie weitere Zeichenfolgen hinzufügen. Im Vergleich zur Zeichenfolgenverkettung ist die Verwendung des Zeichenfolgengenerators schneller und flexibler, obwohl sie weniger lesbar ist. StringBuilder-Objekte sind Objekte, die zum Erstellen von String-Werten verwendet werden. StringBuilder-Objekte haben eine Reihe von Methoden.

Was ist ein InputStreamReader in Java?

InputStreamReader liest einen Zeichenstrom aus einem Eingabestrom und decodiert sie in eine angegebene Zeichencodierung. Es bietet eine einfache Möglichkeit, Zeichenströme von einer Codierung in eine andere zu konvertieren. InputStreamReader liest Bytes aus dem zugrunde liegenden Stream und wandelt sie mithilfe der angegebenen Zeichensatzkodierung in Zeichen um. Es ist eine Klasse, die verwendet wird, um Bytestromdaten in Zeichenstromdaten umzuwandeln. Bytestreams stellen binäre Daten dar und Zeichenstreams repräsentieren Text.