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?

100
demandé sur polygenelubricants 2010-03-24 10:50:11

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é? ).

125
répondu polygenelubricants 2017-05-23 12:10:12

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());
31
répondu missingfaktor 2010-03-24 08:06:50

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

17
répondu Srivastav Reddy 2012-05-28 16:15:26

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();
    }
}
10
répondu thelost 2010-03-24 08:15:58

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);
4
répondu Najib Tounsi 2013-06-23 11:51:42

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
3
répondu Tapper7 2014-12-07 01:11:51

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());
    }
}
2
répondu madhav 2014-06-19 06:27:53