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); }
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); }
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); }
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); }
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!