Maison > Java > Javacommencer > Quelle est la différence entre next() et nextLine() en Java ?

Quelle est la différence entre next() et nextLine() en Java ?

王林
Libérer: 2020-08-21 16:28:09
avant
4655 Les gens l'ont consulté

Quelle est la différence entre next() et nextLine() en Java ?

Tout d'abord, nous savons que les méthodes next() et nextLine() de la classe Scanner en Java sont utilisées pour obtenir les entrées de l'utilisateur.

(Tutoriel recommandé : Tutoriel d'introduction à Java)

Jetons un coup d'œil à la différence entre les deux :

next() n'obtiendra pas le caractère avant/Après la touche espace/Tabulation, seuls les caractères sont obtenus. Commencez à obtenir les caractères (sans compter les caractères avant et après) jusqu'à ce que la touche espace/Tab/Entrée soit rencontrée ; nextLine() obtiendra la touche espace/Tab avant et après le caractère, et se terminera lorsque la touche Entrée est rencontrée.

Exemple :

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);
    }
}
Copier après la connexion

Résultat de l'exécution :

Quelle est la différence entre next() et nextLine() en Java ?

Vous pouvez voir que next() n'obtient que le requestldfj caractère , tout ce qui se trouve après les espaces est supprimé !

Modifiez l'ordre de next() et 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);
    }
}
Copier après la connexion

(Tutoriel recommandé : cours java)

Exécutez l'exemple :

Quelle est la différence entre next() et nextLine() en Java ?

Seulement entré aaaa bbbb cccc, et le système affiche automatiquement deux lignes :

aaaa
 bbbb cccc
Copier après la connexion

Parce qu'il y a un espace après aaaa, next n'est pas nécessaire, donc next Après lecture, les restes bbbb cccc ont été récupérés par nextLine

La solution est d'ajouter le nextLine()

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);
    }
}
Copier après la connexion

noté dans le code ci-dessus :

abcdefg abcdefg
      //剩下两行
Copier après la connexion
Entrée Le programme de retour chariot après la fin de abcdefg, puis abcdefg et deux sauts de ligne sont générés. La raison est que nextLine absorbe le retour chariot après next.

Faites très attention à ce que les deux nextLines ne soient pas connectées ensemble. Cela ne se produira pas lors de l'utilisation de next, car la première exigence absorbée par next est le caractère et la dernière exigence est l'espace, la touche Tab et la touche Entrée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:cnblogs.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal