Maison >Java >javaDidacticiel >Explication détaillée de l'utilisation du scanner Java

Explication détaillée de l'utilisation du scanner Java

藏色散人
藏色散人original
2020-05-30 11:39:1810204parcourir

Explication détaillée de l'utilisation du scanner Java

Explication détaillée de l'utilisation du scanner Java

Classe Java Scanner

java .util.Scanner est une nouvelle fonctionnalité de Java5 Nous pouvons obtenir les entrées de l'utilisateur via la classe Scanner.

Ce qui suit est la syntaxe de base pour créer un objet Scanner :

Scanner s = new Scanner(System.in);

Ensuite, nous démontrons la saisie de données la plus simple et obtenons les caractères d'entrée via les méthodes next() et nextLine() du Scanner class String, avant de lire, nous devons généralement utiliser hasNext et hasNextLine pour déterminer s'il y a encore des données d'entrée :

Utilisez la méthode suivante :

Code du fichier ScannerDemo.java :

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);
        }
        scan.close();
    }
}

Le résultat de l'exécution du programme ci-dessus est :

$ javac ScannerDemo.java
$ java ScannerDemo

Réception en mode suivant :

runoob com

Les données d'entrée sont : runoob

Vous pouvez voir que la chaîne com est pas de sortie, nous voyons ensuite nextLine.

Utiliser la méthode nextLine :

Code du fichier ScannerDemo.java :

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);
        }
        scan.close();
    }
}

Le résultat de l'exécution du programme ci-dessus est :

$ javac ScannerDemo.java
$ java ScannerDemo

Méthode nextLine recevant :

runoob com

Les données d'entrée sont : runoob com

Vous pouvez voir la sortie de la chaîne com.

next() et nextLine() Différences

next() :

1 Vous devez lire les caractères valides avant de pouvoir terminer la saisie.

2. La méthode next() supprimera automatiquement les espaces rencontrés avant de saisir des caractères valides.

3. Seulement après avoir saisi des caractères valides, utilisez l'espace vide saisi après eux comme séparateur ou terminateur.

next() ne peut pas obtenir de chaînes avec des espaces.

nextLine() :

1. Enter est le caractère de fin, ce qui signifie que la méthode nextLine() renvoie tous les caractères avant la saisie.

2. Vous pouvez obtenir un espace vide.

Si vous souhaitez saisir des données de type int ou float, elles sont également prises en charge dans la classe Scanner, mais il est préférable d'utiliser la méthode hasNextXxx() pour vérifier avant la saisie, puis d'utiliser nextXxx() pour lire :

Code du fichier ScannerDemo.java :

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("输入的不是小数!");
        }
        scan.close();
    }
}

Le résultat de l'exécution du programme ci-dessus est :

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

Dans l'exemple suivant, nous pouvons saisir plusieurs nombres et calculer leur somme et moyenne. Chaque entrée Confirmez le nombre avec Entrée, terminez la saisie en saisissant un non-nombre et affichez le résultat de l'exécution :

Code du fichier ScannerDemo.java :

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));
        scan.close();
    }
}

Le résultat de sortie de l'exécution du programme ci-dessus est :

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

Recommandé : "java learning"

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:
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