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 ?

王林
王林avant
2020-08-21 16:28:094658parcourir

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);
    }
}

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);
    }
}

(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

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);
    }
}

noté dans le code ci-dessus :

abcdefg abcdefg
      //剩下两行
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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer