Eingabe mehrerer Zeichenfolgen in Java mit Scanner [mit Codierungsbeispiel]
Veröffentlicht: 2021-02-05Inhaltsverzeichnis
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 |
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.