Zunächst wissen wir, dass die Methoden next() und nextLine() in der Scanner-Klasse in Java verwendet werden, um Benutzereingaben zu erhalten.
(Empfohlenes Tutorial: Java Getting Started Tutorial)
Werfen wir einen Blick auf den Unterschied zwischen den beiden:
next() erhält nicht die Leertaste/Tab-Taste vor/nach dem Zeichen, sondern nur das Zeichen. Beginnen Sie mit dem Abrufen von Zeichen (zählen nicht vor und nach Zeichen), bis die Leertaste/Tabulatortaste/Eingabetaste angetroffen wird. nextLine() ruft die Leerzeichen/Tabulatortaste vor und nach dem Zeichen ab und endet, wenn die Eingabetaste angetroffen wird.
Beispiel:
import java.util.Scanner; import java.util.Vector; public class Main{ public static void main(String args[]) { Scanner reader=new Scanner(System.in); String s1=reader.nextLine(); String s2=reader.next(); System.out.println(s1); System.out.println(s2); } }
Laufergebnis:
Sie können sehen, dass next() nur das askldfj-Zeichen erhält und alles nach dem Leerzeichen verwirft!
Ändern Sie die Reihenfolge von next() und nextLine()
import java.util.Scanner; import java.util.Vector; public class Main{ public static void main(String args[]) { Scanner reader=new Scanner(System.in); String s1=reader.next(); // String ss=reader.nextLine(); String s2=reader.nextLine(); System.out.println(s1); System.out.println(s2); } }
(Empfohlenes Tutorial: Java-Kurs)
Ausführungsbeispiel:
Nur Eingabe aaaa bbbb cccc, das System gibt automatisch zwei Zeilen aus:
aaaa bbbb cccc
Da nach aaaa ein Leerzeichen steht, wird next nicht benötigt, sodass die nächste Lesung endet und die Reste bbbb cccc von nextLine übernommen werden
Die Lösung besteht darin, die nextLine() hinzuzufügen, auf die der obige Code achtet
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner reader=new Scanner(System.in); String s1=reader.next(); String s2=reader.nextLine(); System.out.println(s1); System.out.println(s2); } }
Laufergebnis:
abcdefg abcdefg //剩下两行
Nach der Eingabe von abcdefg ist das Wagenrücklaufprogramm beendet, und dann werden abcdefg und zwei Zeilenvorschübe ausgegeben. Der Grund dafür ist, dass nextLine den Wagenrücklauf nach next absorbiert.
Achten Sie sehr darauf, dass die beiden nextLines nicht miteinander verbunden werden. Bei Verwendung von next ist dies nicht der Fall, da die erste von next übernommene Anforderung das Zeichen und die letzte Anforderung das Leerzeichen, die Tabulatortaste und die Eingabetaste sind.
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen next() und nextLine() in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!