Comment obtenir une simple saisie au clavier (un entier) de l'utilisateur dans la console en Java? J'ai accompli cela en utilisant le code Java.io.*
, mais il est indiqué qu'il est obsolète.
Comment devrais-je le faire maintenant?
Vous pouvez utiliser Scanner class
Importer d'abord:
import Java.util.Scanner;
Ensuite, vous utilisez comme ça.
Scanner keyboard = new Scanner(System.in);
System.out.println("enter an integer");
int myint = keyboard.nextInt();
Note latérale: Si vous utilisez nextInt()
avec nextLine()
, vous pourriez probablement avoir des problèmes, car nextInt()
ne lit pas le dernier caractère de nouvelle ligne de l'entrée et donc nextLine()
ne sera pas valide. être exécuté avec le comportement souhaité. Lisez-en plus sur la façon de le résoudre à la question précédente sautant nextLine en utilisant nextInt .
Vous pouvez utiliser la classe Scanner comme ceci:
import Java.util.Scanner;
public class Main{
public static void main(String args[]){
Scanner scan= new Scanner(System.in);
//For string
String text= scan.nextLine();
System.out.println(text);
//for int
int num= scan.nextInt();
System.out.println(num);
}
}
Vous pouvez aussi le faire avec BufferedReader si vous voulez valider une entrée utilisateur, comme ceci:
import Java.io.BufferedReader;
import Java.io.InputStreamReader;
class Areas {
public static void main(String args[]){
float PI = 3.1416f;
int r=0;
String rad; //We're going to read all user's text into a String and we try to convert it later
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //Here you declare your BufferedReader object and instance it.
System.out.println("Radius?");
try{
rad = br.readLine(); //We read from user's input
r = Integer.parseInt(rad); //We validate if "rad" is an integer (if so we skip catch call and continue on the next line, otherwise, we go to it (catch call))
System.out.println("Circle area is: " + PI*r*r + " Perimeter: " +PI*2*r); //If all was right, we print this
}
catch(Exception e){
System.out.println("Write an integer number"); //This is what user will see if he/she write other thing that is not an integer
Areas a = new Areas(); //We call this class again, so user can try it again
//You can also print exception in case you want to see it as follows:
// e.printStackTrace();
}
}
}
Parce que la classe Scanner ne vous permettra pas de le faire, ou pas si facile ...
Et pour valider, vous utilisez des appels "try-catch".
Pour lire depuis Clavier ( Entrée standard ) Vous pouvez utiliser Scanner est une classe du package Java.util
.
Scanner
package utilisé pour obtenir l'entrée des types de primitive tels que int, double
etc. et strings
. C'est le moyen le plus simple de lire les entrées dans un programme Java, bien que peu efficace.
object
sur Scanner
, nous passons généralement l'objet prédéfini System.in
, qui représente le flux d'entrée standard ( Keyboard ).Par exemple, ce code permet à un utilisateur de lire un numéro à partir de System.in:
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
Certaines méthodes publiques dans Scanner
class.
hasNext()
Renvoie true si ce scanner a un autre jeton en entrée.nextInt()
Analyse le prochain jeton de l'entrée en tant qu'int.nextFloat()
Analyse le jeton suivant de l'entrée sous forme de float.nextLine()
Avance ce scanner au-delà de la ligne en cours et renvoie l'entrée qui a été ignorée.nextDouble()
Analyse le jeton suivant de l'entrée comme un double.close()
Ferme ce scanner.Pour plus de détails sur Méthodes publiques dans la classe Scanner.
Exemple:-
import Java.util.Scanner; //importing class
class ScannerTest {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in); // Scanner object
System.out.println("Enter your rollno");
int rollno = sc.nextInt();
System.out.println("Enter your name");
String name = sc.next();
System.out.println("Enter your fee");
double fee = sc.nextDouble();
System.out.println("Rollno:" + rollno + " name:" + name + " fee:" + fee);
sc.close(); // closing object
}
}
Vous pouvez utiliser Scanner pour obtenir la ligne suivante et faire ce que vous devez faire avec la ligne entrée. Vous pouvez également utiliser JOptionPane pour faire apparaître une boîte de dialogue demandant des entrées.
Exemple de scanner:
Scanner input = new Scanner(System.in);
System.out.print("Enter something > ");
String inputString = input.nextLine();
System.out.print("You entered : ");
System.out.println(inputString);
Exemple JOptionPane:
String input = JOptionPane.showInputDialog(null,
"Enter some text:");
JOptionPane.showMessageDialog(null,"You entered "+ input);
Vous aurez besoin de ces importations:
import Java.util.Scanner;
import javax.swing.JOptionPane;
Une classe complète Java de ce qui précède
import Java.util.Scanner;
import javax.swing.JOptionPane;
public class GetInputs{
public static void main(String args[]){
//Scanner example
Scanner input = new Scanner(System.in);
System.out.print("Enter something > ");
String inputString = input.nextLine();
System.out.print("You entered : ");
System.out.println(inputString);
//JOptionPane example
String input = JOptionPane.showInputDialog(null,
"Enter some text:");
JOptionPane.showMessageDialog(null,"You entered "+ input);
}
}
Importation: import Java.util.Scanner;
Définissez vos variables: String name; int age;
Définissez votre scanner: Scanner scan = new Scanner(System.in);
Si vous voulez taper:
name = scan.nextLine();
age = scan.nextInt();
Fermez le scanner si vous n'en avez plus besoin: scan.close();
Si vous avez Java 6 (vous devriez en avoir, d'ailleurs) ou une version ultérieure, procédez comme suit:
Console console = System.console();
String str = console.readLine("Please enter the xxxx : ");
S'il vous plaît rappelez-vous de faire:
import Java.io.Console;
C'est ça!
import Java.util.Scanner; //import the framework
Scanner input = new Scanner(System.in); //opens a scanner, keyboard
System.out.print("Enter a number: "); //Prompt the user
int myInt = input.nextInt(); //store the input from the user
Faites moi savoir si vous avez des questions. Assez explicite. J'ai commenté le code pour que vous puissiez le lire. :)
Ajouter une ligne:
import Java.util.Scanner;
Créez ensuite un objet de Scanner
class:
Scanner s = new Scanner(System.in);
Maintenant, vous pouvez appeler à tout moment:
int a = Integer.parseInt(s.nextLine());
Ceci stockera la valeur integer
de votre clavier.