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!