CodeGym /Java-Blog /Random-DE /Scanner nextLine()-Methode in Java
John Squirrels
Level 41
San Francisco

Scanner nextLine()-Methode in Java

Veröffentlicht in der Gruppe Random-DE
Scanner , eine Klasse in der Programmiersprache Java, die primitive Typen und Zeichenfolgen mithilfe regulärer Ausdrücke analysieren kann. Die Scannermethode nextLine() in Java verschiebt diesen Scanner über die aktuelle Zeile hinaus und gibt die übersprungene Eingabe zurück. Mehr zu nextLine() und Scanner später in diesem Artikel.

Kurz über die Scannerklasse und ihre Funktionsweise

Grob gesagt ermöglicht die Klasse java.util.Scanner das Lesen von Eingaben aus verschiedenen Quellen, einschließlich der Konsole. Es sieht einem klassischen Scanner wirklich ähnlich. Dieses Hardwaregerät hat eine komplizierte Architektur, aber seine Funktionsweise lässt sich recht einfach beschreiben. Der Scanner liest ein Datum, das ein Benutzer darauf einträgt, beispielsweise auf Papieren, und speichert die Daten wie ein Bild oder eine PDF-Datei im Speicher. Der Java-Scanner liest wie ein echter Scanner Daten aus der von Ihnen angegebenen Quelle. Zum Beispiel aus einem String, aus einer Datei, aus einer Konsole. Dann erkennt es diese Informationen und verarbeitet sie bei Bedarf. Das Programm fordert beispielsweise die Eingabe einiger Daten von der Konsole an und liest diese oder möchte sie aus einer Datei lesen. Für diesen Vorgang verfügt der Scanner über mehrere Methoden in Kombination mit dem Wort „Weiter“. Wie next() , nextLine() , nextInt() , nextDouble() .

nextLine()-Methode

Wie oben erwähnt, teilt das Objekt des Scanners die Eingabe mithilfe des Trennzeichenmusters, standardmäßig Leerzeichen, in Token auf. Es kann jedoch durch eine Zeichenfolge (java.lang.String) oder einen regulären Ausdruck ( java.util.regex) ersetzt werden. Muster ). Die resultierenden Token können dann mithilfe verschiedener Next-Methoden in Werte verschiedener Typen umgewandelt werden. Die Scanner-Methode nextLine() in Java bewegt diesen Scanner über die aktuelle Zeile hinaus und gibt die übersprungene Eingabe zurück. Allgemein next() findet den nächsten vollständigen Token von diesem Scanner und gibt ihn zurück. Die Methode nextLine() durchsucht weiterhin die Eingabe nach einem Zeilentrennzeichen, sodass sie möglicherweise alle Eingaben puffert und nach einer Zeile zum Überspringen sucht, wenn keine Zeilentrennzeichen vorhanden sind. Diese Methode löst die nächsten Ausnahmen aus:
  • NoSuchElementException: Wird ausgelöst, wenn keine Zeile gefunden wurde
  • IllegalStateException: wird ausgelöst, wenn dieser Scanner geschlossen ist

Beispiel für nextLine()

Nehmen wir an, wir möchten, dass der Benutzer ein beliebiges Wort oder einen beliebigen Satz in die Konsole eingibt, und wir könnten ihm zeigen, welches Wort oder welchen Satz er eingegeben hat.
import java.util.Scanner;
//…scanner.nextLine() example
public class ScannerTest {
   public static void main(String[] args) {
       Scanner scan = new Scanner(System.in);
       System.out.println("Enter any phrase and I'll repeat it!... ");
      //here we are reading the next line:
       String sentence = scan.nextLine();
       System.out.println(sentence);
   }
}
Die Ausgabe kann beispielsweise wie folgt aussehen:
Geben Sie einen beliebigen Satz ein und ich wiederhole ihn!... hier ist mein Satz, hier ist mein Satz
Wenn Sie die Methode next() anstelle von nextLine() verwenden , erhalten Sie nur das erste Wort Ihres Satzes.
Geben Sie einen beliebigen Satz ein und ich wiederhole ihn!... hier ist mein Satz hier
Sehen wir uns ein Beispiel einer funktionierenden Scanner- nextLine()- Methode zum Lesen aus einer Datei an. Für dieses Beispiel habe ich eine TXT-Datei myTest.txt erstellt. In dieser Datei gibt es zwei Zeilen:
Meine Testdatei und meine nächste Zeile sind hier
Hier ist ein Programm, das zwei Zeilen aus einer Datei liest.
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class ScannerTest {

   public static void main(String[] args) throws FileNotFoundException {
       Scanner scanner = new Scanner(new File("d://myTest.txt"));

       String textFromFile1 = scanner.nextLine();
       String textFromFile2 = scanner.nextLine();
       System.out.println(textFromFile1);
       System.out.println(textFromFile2);
       scanner.close();

   }
}
Die Ausgabe ist:
Meine Testdatei und meine nächste Zeile sind hier
Wenn Ihr Pfad zur Datei falsch ist oder die Datei mit diesem Namen nicht existiert, erhalten Sie die nächste Ausgabe:
Ausnahme im Thread „main“ java.io.FileNotFoundException: d:\myTest.txt bei java.base/java.io.FileInputStream.open0(Native Method) bei java.base/java.io.FileInputStream.open(FileInputStream.java :213) bei java.base/java.io.FileInputStream.<init>(FileInputStream.java:155) bei java.base/java.util.Scanner.<init>(Scanner.java:639) bei ScannerTest.main( ScannerTest.java:8)
Wenn das Programm Ihre Datei gefunden hat, diese aber leer ist, erhalten Sie NoSuchElementException:
Ausnahme im Thread „main“ java.util.NoSuchElementException: Keine Zeile bei java.base/java.util.Scanner.nextLine(Scanner.java:1651) bei ScannerTest.main(ScannerTest.java:10) gefunden
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION