web-dev-qa-db-ja.com

キーボード入力を取得する

Javaのコンソールでユーザーから単純なキーボード入力(整数)を取得するにはどうすればよいですか? Java.io.*を使用してこれを達成しましたが、推奨されていないと言われています。

今、どうすればいいですか?

43
user1342573

Scanner classを使用できます

最初にインポート:

import Java.util.Scanner;

次に、このように使用します。

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

サイドノート:nextInt()nextLine()を使用している場合、おそらく何らかの問題が発生する可能性がありますnextInt()は入力の最後の改行文字を読み取らないため、nextLine()は目的の動作で実行されます。この前の質問でそれを解決する方法の詳細をお読みください nextIntを使用したnextLineのスキップ

64
nachokk

Scannerクラスは次のように使用できます。

  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

次のように、ユーザー入力を検証する場合は、 BufferedReader で作成することもできます。

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

Scannerクラスでは実行できないため、それほど簡単ではありません...

検証するには、「try-catch」呼び出しを使用します。

13
Frakcool

Scannerクラスを使用できます

KeyboardStandard Input))を使用するには、を使用できますScannerJava.utilパッケージのクラスです。

int, doubleなどおよびScannerなどのプリミティブ型の入力を取得するために使用されるstringsパッケージ。非常に効率的ではありませんが、Javaプログラムで入力を読み取る最も簡単な方法です。

  1. objectScannerクラスを作成するには、通常、標準入力ストリーム(Keyboard)を表す定義済みオブジェクトSystem.inを渡します。

たとえば、次のコードにより、ユーザーはSystem.inから数値を読み取ることができます。

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

Scannerクラスの一部のパブリックメソッド。

  • hasNext()このスキャナーの入力に別のトークンがある場合、trueを返します。
  • nextInt()入力の次のトークンをintとしてスキャンします。
  • nextFloat()入力の次のトークンをフロートとしてスキャンします。
  • nextLine()現在の行を超えてこのスキャナーを進め、スキップされた入力を返します。
  • nextDouble()入力の次のトークンをdoubleとしてスキャンします。
  • close()このスキャナーを閉じます。

Scannerクラスの Publicメソッドの詳細については、

例:-

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

スキャナーを使用して次の行を取得し、入力した行で必要なことを実行できます。 JOptionPaneを使用して、入力を求めるダイアログをポップアップ表示することもできます。

スキャナーの例:

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の例:

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

次のインポートが必要になります。

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

上記の完全なJavaクラス

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 Java.util.Scanner;

変数を定義します:String name; int age;

スキャナーを定義します:Scanner scan = new Scanner(System.in);

入力する場合:

  • テキスト:name = scan.nextLine();
  • 整数:age = scan.nextInt();

不要になったらスキャナーを閉じます:scan.close();

2
喬治扎菲

Java 6(btwが必要です)以上の場合、次のようにします。

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

忘れずに:

 import Java.io.Console;

それでおしまい!

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

ご質問がある場合はお知らせください。かなり自明です。あなたがそれを読むことができるように、私はコードをコメントしました。 :)

2
Dummy Code

行を追加:

import Java.util.Scanner;

次に、Scannerクラスのオブジェクトを作成します。

Scanner s = new Scanner(System.in);

これで、いつでも電話をかけることができます。

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

これにより、キーボードのinteger値が保存されます。

1
Yeshdeep Kumar