Comment lire la valeur entière de L'entrée standard en Java
quelle classe puis-je utiliser pour lire une variable entière en Java?
7 réponses
vous pouvez utiliser java.util.Scanner
( API ):
import java.util.Scanner;
//...
Scanner in = new Scanner(System.in);
int num = in.nextInt();
il peut aussi tokenize input avec l'expression régulière, etc. L'API a des exemples et il y en a beaucoup d'autres dans ce site (par exemple Comment puis-je empêcher un scanner de lancer des exceptions quand le mauvais type est entré? ).
si vous utilisez Java 6, Vous pouvez utiliser l'oneliner suivant pour lire un entier de la console:
int n = Integer.parseInt(System.console().readLine());
ici, je fournis 2 exemples pour lire la valeur entière de l'entrée standard
exemple 1
import java.util.Scanner;
public class Maxof2
{
public static void main(String args[])
{
//taking value as command line argument.
Scanner in = new Scanner(System.in);
System.out.printf("Enter i Value: ");
int i = in.nextInt();
System.out.printf("Enter j Value: ");
int j = in.nextInt();
if(i > j)
System.out.println(i+"i is greater than "+j);
else
System.out.println(j+" is greater than "+i);
}
}
exemple 2
public class ReadandWritewhateveryoutype
{
public static void main(String args[]) throws java.lang.Exception
{
System.out.printf("This Program is used to Read and Write what ever you type \nType quit to Exit at any Moment\n\n");
java.io.BufferedReader r = new java.io.BufferedReader (new java.io.InputStreamReader (System.in));
String hi;
while (!(hi=r.readLine()).startsWith("quit"))System.out.printf("\nYou have typed: %s \n",hi);
}
}
je préfère le premier exemple, il est facile et tout à fait compréhensible.
Vous pouvez compiler et exécuter les programmes JAVA en ligne sur ce site web: http://ideone.com
Vérifier celui-ci:
public static void main(String[] args) {
String input = null;
int number = 0;
try {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
input = bufferedReader.readLine();
number = Integer.parseInt(input);
} catch (NumberFormatException ex) {
System.out.println("Not a number !");
} catch (IOException e) {
e.printStackTrace();
}
}
la deuxième réponse ci-dessus est la plus simple.
int n = Integer.parseInt(System.console().readLine());
la question est"comment lire à partir d'une entrée standard".
une console est un dispositif typiquement associé au clavier et à l'écran à partir desquels un programme est lancé.
vous voudrez peut-être tester si aucun périphérique de la console Java n'est disponible, par exemple, la VM Java n'est pas démarrée à partir d'une ligne de commande ou les flux d'entrée et de sortie standard sont redirigés.
Console cons;
if ((cons = System.console()) == null) {
System.err.println("Unable to obtain console");
...
}
en utilisant la console est un moyen simple d'entrer des nombres. Combiné avec parseInt()/Double() etc.
s = cons.readLine("Enter a int: ");
int i = Integer.parseInt(s);
s = cons.readLine("Enter a double: ");
double d = Double.parseDouble(s);
cela provoque des maux de tête donc j'ai mis à jour une solution qui fonctionnera en utilisant le matériel et les outils logiciels les plus courants disponibles pour les utilisateurs en décembre 2014. Veuillez noter que les JDK/SDK/JRE/Netbeans et leurs classes suivantes, compilateurs de bibliothèques de modèles, éditeurs et débogueurs sont libres.
ce programme a été testé avec Java v8 u25. Il a été écrit et construit en utilisant
Netbeans IDE 8.0.2, JDK 1.8, OS is win8.1 (excuses) et le navigateur est Chrome (double-toutes mes excuses)
- conçu pour aider UNIX-cmd-line OG à traiter les interfaces graphiques modernes-IDEs basées sur le Web
à coût zéro - parce que l'information (et IDEs) devrait toujours être gratuite.
Par Tapper7. Pour Tout Le Monde.
bloc de code:
package modchk; //Netbeans requirement.
import java.util.Scanner;
//import java.io.*; is not needed Netbeans automatically includes it.
public class Modchk {
public static void main(String[] args){
int input1;
int input2;
//Explicity define the purpose of the .exe to user:
System.out.println("Modchk by Tapper7. Tests IOStream and basic bool modulo fxn.\n"
+ "Commented and coded for C/C++ programmers new to Java\n");
//create an object that reads integers:
Scanner Cin = new Scanner(System.in);
//the following will throw() if you don't do you what it tells you or if
//int entered == ArrayIndex-out-of-bounds for your system. +-~2.1e9
System.out.println("Enter an integer wiseguy: ");
input1 = Cin.nextInt(); //this command emulates "cin >> input1;"
//I test like Ernie Banks played hardball: "Let's play two!"
System.out.println("Enter another integer...anyday now: ");
input2 = Cin.nextInt();
//debug the scanner and istream:
System.out.println("the 1st N entered by the user was " + input1);
System.out.println("the 2nd N entered by the user was " + input2);
//"do maths" on vars to make sure they are of use to me:
System.out.println("modchk for " + input1);
if(2 % input1 == 0){
System.out.print(input1 + " is even\n"); //<---same output effect as *.println
}else{
System.out.println(input1 + " is odd");
}//endif input1
//one mo' 'gain (as in istream dbg chk above)
System.out.println("modchk for " + input2);
if(2 % input2 == 0){
System.out.print(input2 + " is even\n");
}else{
System.out.println(input2 + " is odd");
}//endif input2
}//end main
}//end Modchk
vérifier celui-ci:
import java.io.*;
public class UserInputInteger
{
public static void main(String args[])throws IOException
{
InputStreamReader read = new InputStreamReader(System.in);
BufferedReader in = new BufferedReader(read);
int number;
System.out.println("Enter the number");
number = Integer.parseInt(in.readLine());
}
}