Heim  >  Artikel  >  Java  >  Was ist der Unterschied zwischen next() und nextLine() in Java?

Was ist der Unterschied zwischen next() und nextLine() in Java?

王林
王林nach vorne
2020-08-21 16:28:094623Durchsuche

Was ist der Unterschied zwischen next() und nextLine() in Java?

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:

Was ist der Unterschied zwischen next() und nextLine() in Java?

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:

Was ist der Unterschied zwischen next() und nextLine() in Java?

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen