Obtenir Une Entrée Au Clavier


Comment puis-je obtenir une entrée simple au clavier (un entier) de l'utilisateur dans la console en Java? J'ai accompli cela en utilisant le truc java.io.*, mais il dit qu'il est obsolète.

Comment dois-je le faire maintenant?

Author: Anthony E, 2013-07-09

9 answers

, Vous pouvez utiliser Scanner classe

Importer en premier:

import java.util.Scanner;

Alors vous utilisez comme ceci.

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 exécuté avec le comportement souhaité. En savoir plus dans comment le résoudre dans cette question précédente Sauter nextLine en utilisant nextInt.

 55
Author: nachokk, 2017-05-23 11:55:10

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);
    }
}
 16
Author: Mike B, 2013-07-09 00:52:08

Vous pouvez également le faire avec BufferedReader {[3] } si vous voulez valider l'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".

 12
Author: Frakcool, 2015-09-02 18:14:58

Vous pouvez utiliser Scanner pour obtenir la ligne suivante et faire tout 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 Java complète 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);
    }
}
 3
Author: s-hunter, 2014-01-31 18:42:46

Importer: 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:

  • Texte: name = scan.nextLine();
  • Entier: age = scan.nextInt();

Fermer le scanner s'il n'est plus nécessaire: scan.close();

 2
Author: Bishop, 2017-01-14 18:09:56
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 explicites. J'ai commenté le code afin que vous puissiez le lire. :)

 1
Author: Dummy Code, 2013-07-09 00:48:31

Ajouter la ligne:

import java.util.Scanner;

Puis créez un objet de la classe Scanner:

Scanner s = new Scanner(System.in);

Maintenant, vous pouvez appeler à tout moment:

int a = Integer.parseInt(s.nextLine());

Cela stockera la valeur integer de votre clavier.

 1
Author: Yeshdeep Kumar, 2014-11-03 13:50:18

Si vous avez Java 6 (Vous devriez avoir, btw) ou supérieur, faites simplement ceci:

 Console console = System.console();
 String str = console.readLine("Please enter the xxxx : ");

N'oubliez pas de faire :

 import java.io.Console;

C'est tout!

 1
Author: M-D, 2015-01-06 15:26:29

Vous pouvez utiliser la classe Scanner

À lire à partir du clavier (Entrée standard ) Vous pouvez utiliser Scanner est une classe dans java.util package.

Scanner paquet utilisé pour obtenir l'entrée des types primitifs comme int, double etc. et strings. C'est le moyen le plus simple de lire les entrées dans un programme Java, mais pas très efficace.

  1. Pour créer un object de la classe Scanner, nous passons généralement le objet prédéfini System.in, qui représente la norme entrée flux (Clavier).

Par exemple, ce code permet à un utilisateur de lire un nombre depuis System.in:

Scanner sc = new Scanner(System.in);
     int i = sc.nextInt();

Quelques méthodes publiques dans la classe Scanner.

  • hasNext() Renvoie true si ce scanner a un autre jeton dans son entrée.
  • nextInt() Analyse le jeton suivant de l'entrée en tant qu'int.
  • nextFloat() Scanne le jeton suivant de l'entrée en tant que flottant.
  • nextLine() Avance ce scanner au-delà de la ligne actuelle et renvoie l'entrée qui était sauter.
  • nextDouble() Scanne le jeton suivant de l'entrée en tant que double.
  • close() Ferme ce scanner.

Pour plus de détails sur Méthodes publiques dans la classe Scanner.

Exaple: -

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
  }
}
 0
Author: anoopknr, 2018-06-07 20:31:13