it-swarm.com.de

Tastatureingabe abrufen

Wie erhalte ich eine einfache Tastatureingabe (eine Ganzzahl) vom Benutzer in der Konsole in Java? Ich habe dies mit dem Java.io.* Zeug, aber es heißt, es ist veraltet.

Wie soll ich das jetzt machen?

43
user1342573

Sie können die Klasse Scanner verwenden

Zuerst importieren:

import Java.util.Scanner;

Dann benutzt du das so.

Scanner keyboard = new Scanner(System.in);
System.out.println("enter an integer");
int myint = keyboard.nextInt();

Randnotiz: Wenn Sie nextInt() mit nextLine() verwenden, könnte dies zu Problemen führen, da nextInt() das letzte Zeilenumbruchzeichen der Eingabe und damit nextLine() wird dann nicht mit gewünschtem Verhalten ausgeführt. Weitere Informationen zur Lösung finden Sie in dieser vorherigen Frage nextLine mit nextInt überspringen .

64
nachokk

Sie können die Scannerklasse wie folgt verwenden:

  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);
    }
}
18
Mike B

Sie können es auch mit BufferedReader machen, wenn Sie Benutzereingaben wie folgt validieren möchten:

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

Weil Sie es in der Scannerklasse nicht oder nicht so einfach machen können ...

Und zur Bestätigung verwenden Sie "try-catch" -Aufrufe.

13
Frakcool

Sie können die Scannerklasse verwenden

Lesen von Tastatur ( Standardeingabe) Sie können Scanner ist eine Klasse im Paket Java.util.

Scanner Paket, mit dem die Eingabe der primitiven Typen wie int, double usw. und strings abgerufen wird. Dies ist der einfachste Weg, Eingaben in einem Java) - Programm zu lesen, wenn auch nicht sehr effizient.

  1. Um eine object von Scanner zu erstellen, übergeben wir normalerweise das vordefinierte Objekt System.in, Das den Standardeingabestream darstellt ( Tastatur).

Mit diesem Code kann ein Benutzer beispielsweise eine Nummer aus System.in lesen:

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

Einige öffentliche Methoden in der Klasse Scanner.

  • hasNext() Gibt true zurück, wenn dieser Scanner ein anderes Token in seiner Eingabe hat.
  • nextInt() Überprüft das nächste Token der Eingabe als int.
  • nextFloat() Scannt das nächste Token der Eingabe als Float.
  • nextLine() Führt diesen Scanner über die aktuelle Zeile hinaus und gibt die übersprungene Eingabe zurück.
  • nextDouble() Scannt das nächste Token der Eingabe als Double.
  • close() Schließt diesen Scanner.

Weitere Informationen zu Öffentliche Methoden in der Scannerklasse.

Beispiel:-

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
  }
}
6
anoopknr

Mit dem Scanner können Sie die nächste Zeile abrufen und mit der eingegebenen Zeile alle erforderlichen Aktionen ausführen. Sie können JOptionPane auch verwenden, um ein Dialogfeld zu öffnen, in dem Sie nach Eingaben gefragt werden.

Scanner-Beispiel:

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

String input = JOptionPane.showInputDialog(null,
     "Enter some text:");
JOptionPane.showMessageDialog(null,"You entered "+ input);

Sie benötigen diese Importe:

import Java.util.Scanner;
import javax.swing.JOptionPane;

Eine vollständige Java Klasse von oben

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
s-hunter

Import: import Java.util.Scanner;

Definieren Sie Ihre Variablen: String name; int age;

Definieren Sie Ihren Scanner: Scanner scan = new Scanner(System.in);

Wenn Sie Folgendes eingeben möchten:

  • Text: name = scan.nextLine();
  • Ganzzahl: age = scan.nextInt();

Schließen Sie den Scanner, wenn er nicht mehr benötigt wird: scan.close();

2
喬治扎菲

Wenn Sie Java 6 (Sie sollten übrigens haben) oder höher, dann tun Sie einfach dies:

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

Bitte denken Sie daran:

 import Java.io.Console;

Das ist es!

2
M-D
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

Lassen Sie mich wissen, wenn Sie Fragen haben. Ziemlich selbsterklärend. Ich habe den Code kommentiert, damit Sie ihn lesen können. :)

2
Dummy Code

Zeile hinzufügen:

import Java.util.Scanner;

Dann erstelle ein Objekt der Klasse Scanner:

Scanner s = new Scanner(System.in);

Jetzt können Sie jederzeit anrufen:

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

Dadurch wird der Wert von integer auf Ihrer Tastatur gespeichert.

1
Yeshdeep Kumar