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

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

王林
Freigeben: 2020-08-21 16:28:09
nach vorne
4655 Leute haben es durchsucht

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);
    }
}
Nach dem Login kopieren

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);
    }
}
Nach dem Login kopieren

(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
Nach dem Login kopieren

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);
    }
}
Nach dem Login kopieren

Laufergebnis:

abcdefg abcdefg
      //剩下两行
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:cnblogs.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage