363 Stimmen

Wie erhält man die Benutzereingabe in Java?

Ich habe versucht, einen Taschenrechner zu erstellen, aber ich kann ihn nicht zum Laufen bringen, weil ich nicht weiß wie man Benutzereingaben erhält .

Wie kann ich die Benutzereingabe in Java erhalten?

4voto

Scott Punkte 16361
Scanner input = new Scanner(System.in);
String inputval = input.next();

4voto

Arrow Punkte 165

Scanner input=new Scanner(System.in); int integer=input.nextInt(); String string=input.next(); long longInteger=input.nextLong();

4voto

Dave Hentchel Punkte 1021

Nur ein zusätzliches Detail. Wenn Sie kein Speicher-/Ressourcenleck riskieren wollen, sollten Sie den Scanner-Stream schließen, wenn Sie fertig sind:

myScanner.close();

Beachten Sie, dass Java 1.7 und höher dies als Kompilierwarnung abfangen (fragen Sie nicht, woher ich das weiß :-)

4voto

MarredCheese Punkte 13018

Hier ist eine weiterentwickelte Version der akzeptierten Antwort, die auf zwei allgemeine Bedürfnisse eingeht:

  • Wiederholtes Sammeln von Benutzereingaben, bis ein Exit-Wert eingegeben wurde
  • Umgang mit ungültigen Eingabewerten (in diesem Beispiel nicht-ganzzahlig)

Code

package inputTest;

import java.util.Scanner;
import java.util.InputMismatchException;

public class InputTest {
    public static void main(String args[]) {
        Scanner reader = new Scanner(System.in);
        System.out.println("Please enter integers. Type 0 to exit.");

        boolean done = false;
        while (!done) {
            System.out.print("Enter an integer: ");
            try {
                int n = reader.nextInt();
                if (n == 0) {
                    done = true;
                }
                else {
                    // do something with the input
                    System.out.println("\tThe number entered was: " + n);
                }
            }
            catch (InputMismatchException e) {
                System.out.println("\tInvalid input type (must be an integer)");
                reader.nextLine();  // Clear invalid input from scanner buffer.
            }
        }
        System.out.println("Exiting...");
        reader.close();
    }
}

Beispiel

Please enter integers. Type 0 to exit.
Enter an integer: 12
    The number entered was: 12
Enter an integer: -56
    The number entered was: -56
Enter an integer: 4.2
    Invalid input type (must be an integer)
Enter an integer: but i hate integers
    Invalid input type (must be an integer)
Enter an integer: 3
    The number entered was: 3
Enter an integer: 0
Exiting...

Beachten Sie, dass ohne nextLine() wird die fehlerhafte Eingabe wiederholt dieselbe Ausnahme in einer Endlosschleife auslösen. Sie könnten Folgendes verwenden next() stattdessen je nach den Umständen, aber Sie sollten wissen, dass Eingaben wie this has spaces wird mehrere Ausnahmen erzeugen.

3voto

coder Punkte 3541
import java.util.Scanner; 

class Daytwo{
    public static void main(String[] args){
        System.out.println("HelloWorld");

        Scanner reader = new Scanner(System.in);
        System.out.println("Enter the number ");

        int n = reader.nextInt();
        System.out.println("You entered " + n);

    }
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X