Maison > Java > JavaBase > Comment obtenir des entrées en Java ?

Comment obtenir des entrées en Java ?

Libérer: 2019-12-03 09:21:34
original
8663 Les gens l'ont consulté

Comment obtenir des entrées en Java ?

Pendant le processus de développement de programmes Java, il est courant d'avoir besoin d'obtenir des valeurs d'entrée​​à partir du clavier, mais Java ne nous fournit pas scanf() comme le C langage ou C++. La fonction cin() fournie est une fonction prête à l'emploi pour obtenir la valeur de saisie au clavier ! Java ne fournit pas une telle fonction, ce qui ne veut pas dire que nous sommes impuissants face à cette situation. (Recommandé : tutoriel vidéo Java)

Veuillez jeter un œil aux trois solutions suivantes :

Plusieurs méthodes seront répertoriées ci-dessous :

méthode un : Recevez un caractère de la console, puis imprimez-le

import java.io.*;
public static void main(String [] args) throws IOException{ 
         System.out.print("Enter a Char:"); 
         char i = (char) System.in.read(); 
         System.out.println("your char is :"+i); 
}
Copier après la connexion

Bien que cette méthode permet d'obtenir les caractères saisis à partir du clavier, System.out.read() ne peut obtenir qu'un seul caractère, et en même temps , le type de variable obtenue ne peut être que char. Lorsque nous saisissons un nombre et espérons obtenir une variable entière, nous devons modifier le type de variable, ce qui est plus gênant.

Méthode 2 : recevez une chaîne de la console et imprimez-la. Dans cette question, nous devons utiliser la classe BufferedReader et la classe InputStreamReader

import java.io.*;
public static void main(String [] args) throws IOException{ 
           BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
           String str = null; 
           System.out.println("Enter your value:"); 
           str = br.readLine(); 
           System.out.println("your value is :"+str); 
}
Copier après la connexion

afin que nous puissions obtenir la chaîne que nous saisissons.

Méthode 3 : Je pense que cette méthode est la plus simple et la plus puissante, qui consiste à utiliser la classe Scanner

import java.util.Scanner;
public static void main(String [] args) { 
         Scanner sc = new Scanner(System.in); 
         System.out.println("请输入你的姓名:"); 
         String name = sc.nextLine(); 
         System.out.println("请输入你的年龄:"); 
         int age = sc.nextInt(); 
         System.out.println("请输入你的工资:"); 
         float salary = sc.nextFloat(); 
         System.out.println("你的信息如下:"); 
         System.out.println("姓名:"+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary); 
}
Copier après la connexion

Ce code a montré que la classe Scanner est destinée aux chaînes ou aux variables entières de données ou le type flottant peut fonctionner avec seulement quelques petits changements ! Sans aucun doute, il est le plus puissant !

Cependant, il y a une chose à laquelle vous devez faire attention lorsque vous utilisez la troisième méthode de saisie, qui est la fonction nextLine(). Il existe une fonction avec la même fonction que sa fonction next() dans l'io. package. Leurs fonctions sont les mêmes, mais quelles sont les différences d'implémentation ? Veuillez consulter le code suivant :

public static void main(String [] args) { 
         Scanner sc = new Scanner(System.in); 
         System.out.println("请输入你的年龄:"); 
         int age = sc.nextInt(); 
         System.out.println("请输入你的姓名:"); 
         String name = sc.nextLine(); 
         System.out.println("请输入你的工资:"); 
         float salary = sc.nextFloat(); 
         System.out.println("你的信息如下:"); 
         System.out.println("姓名:"+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary); 
}
Copier après la connexion

La différence entre ce code et l'exemple de code donné ci-dessus pour la troisième méthode de saisie est que ce code exécute d'abord nextInit(), puis exécute nextLine(), et l'exemple de la troisième méthode consiste à exécuter nextLine() d'abord, puis à exécuter nextInit(). Lorsque vous exécutez les deux morceaux de code, vous constaterez que l'exemple. de la troisième méthode peut obtenir une entrée normale, mais ce code saisit l'âge. Après avoir appuyé sur la touche Entrée, il ignore la saisie du nom et passe directement à la saisie du salaire (vous pouvez exécuter le code vous-même pour voir) Pourquoi est-ce ?

En fait, après avoir exécuté la fonction nextInit() et appuyé sur la touche entrée, le caractère de retour chariot sera absorbé par la fonction nextLine(). En fait, la fonction nextLine() est exécutée pour absorber le saisi. caractère de retour chariot (cela ne signifie pas que la fonction nextLine n'est pas exécutée). Comme mentionné précédemment, la fonction next() a la même fonction que nextLine(). le caractère de retour chariot, la tabulation ou la barre d'espace, etc., donc lorsque vous utilisez la fonction nextLine(), sachez que le caractère de retour chariot que vous tapez peut être absorbé par celle-ci, provoquant un BUG dans le programme ! ! !

Pour plus de connaissances sur Java, veuillez faire attention à la colonne Tutoriel de base Java.

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