Latest web development tutorials

classe Java Scanner

java.util.Scanner Java5 nouvelles fonctionnalités, nous pouvons obtenir l'entrée de l'utilisateur par le biais de la classe Scanner.

Voici la syntaxe de base pour créer un objet de Scanner:

 Scanner s = new Scanner(System.in); 

Ensuite, nous démontrons une entrée de données simple et la chaîne d'entrée disponibles par le biais de la classe Scanner next () et la méthode nextLine (), avant la lecture, nous avons généralement besoin d'utiliser les données pour déterminer si hasNext et haxNextLine entrés:

Utilisez la méthode suivante:

import java.util.Scanner; 

public class ScannerDemo {  
    public static void main(String[] args) {  
        Scanner scan = new Scanner(System.in); 
		// 从键盘接收数据  

		//next方式接收字符串
        System.out.println("next方式接收:");
        // 判断是否还有输入
        if(scan.hasNext()){   
        	String str1 = scan.next();
        	System.out.println("输入的数据为:"+str1);  
        }  

    }  
} 

La sortie du programme ci-dessus est:

$ javac ScannerDemo.java
$ java ScannerDemo
next方式接收:
w3big com
输入的数据为:w3big

Com vous pouvez voir la chaîne de sortie Non, regardons nextLine.

Utiliser des méthodes nextLine:

import java.util.Scanner; 

public class ScannerDemo {  
    public static void main(String[] args) {  
        Scanner scan = new Scanner(System.in); 
		// 从键盘接收数据  

		//nextLine方式接收字符串
        System.out.println("nextLine方式接收:");
        // 判断是否还有输入
        if(scan.hasNextLine()){   
        	String str2 = scan.nextLine();
        	System.out.println("输入的数据为:"+str2);  
        }  

    }  
} 

La sortie du programme ci-dessus est:

$ javac ScannerDemo.java
$ java ScannerDemo
nextLine方式接收:
w3big com
输入的数据为:w3big com

Com vous pouvez voir la chaîne de sortie.

next () et nextLine () différence

next ():

  • 1, assurez-vous de lire la fin avant de pouvoir entrer un caractère valide.
  • 2, avant d'entrer un caractère blanc valide rencontré, méthode suivante () sera automatiquement supprimé.
  • 3, entrez valide seulement après un caractère vide derrière l'entrée comme un séparateur ou un terminateur.
  • next () ne peut pas obtenir la chaîne avec des espaces.

nextLine ():

  • 1, Entrée pour terminer le caractère, c'est-à-dire la méthode nextLine () retourne tous les caractères avant un retour chariot.
  • 2 peuvent être obtenus en blanc.

Si vous voulez entrer int ou float type de données dans la classe Scanner est également pris en charge, mais il est préférable d'utiliser la méthode hasNextXxx () pour vérifier avant d'entrer, puis utilisez nextXxx () pour lire:

import java.util.Scanner;  

public class ScannerDemo {  
    public static void main(String[] args) {  
        Scanner scan = new Scanner(System.in);  
		// 从键盘接收数据  
        int i = 0 ;  
        float f = 0.0f ;  
        System.out.print("输入整数:");  
        if(scan.hasNextInt()){                 
			// 判断输入的是否是整数  
            i = scan.nextInt() ;                
			// 接收整数  
            System.out.println("整数数据:" + i) ;  
        }else{                                 
			// 输入错误的信息  
            System.out.println("输入的不是整数!") ;  
        }  
        System.out.print("输入小数:");  
        if(scan.hasNextFloat()){              
			// 判断输入的是否是小数  
            f = scan.nextFloat() ;             
			// 接收小数  
            System.out.println("小数数据:" + f) ;  
        }else{                                
			// 输入错误的信息  
            System.out.println("输入的不是小数!") ;  
        }  
    }  
} 

La sortie du programme ci-dessus est:

$ javac ScannerDemo.java
$ java ScannerDemo
输入整数:12
整数数据:12
输入小数:1.2
小数数据:1.2

Les exemples suivants, nous pouvons entrer plusieurs numéros, et pour sa totale et moyenne, chaque entrez un numéro avec, puis appuyez sur Entrée pour terminer en entrant des entrées non numériques et délivre le résultat de:

import java.util.Scanner; 

class ScannerDemo   
{  
    public static void main(String[] args)   
    {  
        Scanner scan = new Scanner(System.in);  
  
        double sum = 0;  
        int m = 0;  
  
        while(scan.hasNextDouble())  
        {  
            double x = scan.nextDouble();  
            m = m + 1;  
            sum = sum + x;  
        }  
  
        System.out.println(m+"个数的和为"+sum);  
        System.out.println(m+"个数的平均值是"+(sum/m));  
    }  
}  

La sortie du programme ci-dessus est:

$ javac ScannerDemo.java
$ java ScannerDemo
12
23
15
21.4
end
4个数的和为71.4
4个数的平均值是17.85