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

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

藏色散人
Libérer: 2020-05-30 11:39:18
original
10206 Les gens l'ont consulté

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

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

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

$ javac ScannerDemo.java
$ java ScannerDemo
Copier après la connexion
Copier après la connexion

Réception en mode suivant :

runoob com
Copier après la connexion

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

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

$ javac ScannerDemo.java
$ java ScannerDemo
Copier après la connexion
Copier après la connexion

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

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

$ javac ScannerDemo.java
$ java ScannerDemo
输入整数:12
整数数据:12
输入小数:1.2
小数数据:1.2
Copier après la connexion

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

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

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!

Étiquettes associées:
source:php.cn
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