BufferedReader
Scanner クラスを使用するのではなく、などの他のクラスを使用してユーザーから入力を取得する他の方法について知りたいです。では、ユーザーから入力を取得する他の方法はありましたか? Scanner
もしそうなら、それはクラスよりも効率的でしたか?
6 に答える
Console
Java SE6以降を使用している場合は、クラスを利用できます。
Console console = System.console();
if (console==null){
System.out.print("console not available ");
}else {
String line = console.readLine("Enter name :");
System.out.print("your name :"+line);
}
System.in
次のように直接使用できます。
BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
String line;
while ((line = r.readLine()) != null) {
System.out.println(line);
}
これは を使用するよりも少し速いかもしれませんが、単純なScanner
比較ではありません。Scanner
入力をトークン化するためのより多くの方法を提供し、入力をBufferedReader
トークン化せずに行に分割できます。
これを使って:
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
のリーダーを作成し、または何かをSystem.in
使用して必要なものを取得できます。stdin.readLine()
を使用すると、BufferedReader
を使用するよりもはるかに効率的ですScanner
。
ここでは例えば...
InputStreamReader inStream = new InputStreamReader(System.in);
BufferedReader stdin = new BufferedReader(inStream);
int num , num2;
String str[]=new String[2];
System.out.print("Please Enter Your First Number:");
str[0] = stdin.readLine();
System.out.print("Please Enter Your Second Number:");
str[1] = stdin.readLine();
num = Integer.parseInt(str[0]);
num2 = Integer.parseInt(str[1]);
ユーザーは、スキャナークラスを使用せずにプログラムの実行時にデータを入力できます。これは、次のプログラムを使用して行うことができます。
class Demo
{
public static void main(String ar[])
{
int ab = Integer.parseInt(ar[0]);
int ba = Integer.parseInt(ar[1]);
int res = ab+ba;
System.out.print(res);
}
}
これは、ユーザーが実行時にデータを入力し、目的の結果を得ることができる基本的なプログラムです。文字列の加算、減算、乗算、除算、連結を CMD で行うことができ、ユーザーは Java プログラムのコンパイル後、つまりクラス ファイルの呼び出し時にデータを入力できます。クラスファイルを呼び出して、スペースの後にデータを入力するだけです。
C:\Users\Lenovo\Desktop>java Demo 5 2
ここでは、ab= 5 および ba= 2 です。ユーザーは、必要に応じて、任意の数値または文字列を持つことができます。