Javaのコンソールでユーザーから単純なキーボード入力(整数)を取得するにはどうすればよいですか? Java.io.*
を使用してこれを達成しましたが、推奨されていないと言われています。
今、どうすればいいですか?
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のスキップ 。
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);
}
}
次のように、ユーザー入力を検証する場合は、 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」呼び出しを使用します。
Keyboard(Standard Input))を使用するには、を使用できますScannerはJava.util
パッケージのクラスです。
int, double
などおよびScanner
などのプリミティブ型の入力を取得するために使用されるstrings
パッケージ。非常に効率的ではありませんが、Javaプログラムで入力を読み取る最も簡単な方法です。
object
のScanner
クラスを作成するには、通常、標準入力ストリーム(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
}
}
スキャナーを使用して次の行を取得し、入力した行で必要なことを実行できます。 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);
}
}
インポート:import Java.util.Scanner;
変数を定義します:String name; int age;
スキャナーを定義します:Scanner scan = new Scanner(System.in);
入力する場合:
name = scan.nextLine();
age = scan.nextInt();
不要になったらスキャナーを閉じます:scan.close();
Java 6(btwが必要です)以上の場合、次のようにします。
Console console = System.console();
String str = console.readLine("Please enter the xxxx : ");
忘れずに:
import Java.io.Console;
それでおしまい!
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
ご質問がある場合はお知らせください。かなり自明です。あなたがそれを読むことができるように、私はコードをコメントしました。 :)
行を追加:
import Java.util.Scanner;
次に、Scanner
クラスのオブジェクトを作成します。
Scanner s = new Scanner(System.in);
これで、いつでも電話をかけることができます。
int a = Integer.parseInt(s.nextLine());
これにより、キーボードのinteger
値が保存されます。