Notieren Sie sich, was ich darüber gedacht habe.
next () sucht nach durch Leerzeichen getrennten Token und gibt die Token in der Reihenfolge zurück, in der sie gefunden wurden. Es spielt keine Rolle, ob Sie es ändern, da es das Token zurückgibt, nachdem die Eingabe vom Scanner einmal erfasst wurde.
nextLine () bewegt den aktuellen Cursor an den Anfang der nächsten Zeile. Dann wird der übersprungene Betrag ausgegeben.
java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
String line = sc.nextLine();
System.out.println(str);
System.out.println(line);
sc.close();
}
}
Was passiert, wenn Sie für den obigen Code etwas wie das unten stehende eingeben?
Eingang
1
abcde
Zunächst gibt sc.next () das allererste Token zurück. 1 wird in str eingegeben. Hier befindet sich der Cursor zwischen 1 und dem Zeilenumbruch.
Eingang
1[Zeilenvorschubcode]
^
Hier
abcde
Wenn Sie nun sc.nextLine () ausführen, wird der Cursor an den Anfang der nächsten Zeile bewegt.
Eingang
1[Zeilenvorschubcode]
abcde
^
Hier
Mit anderen Worten, nur der Zeilenvorschubcode wird von nextLine () gelesen.
Recommended Posts