BufferedReaderScanner クラスを使用するのではなく、などの他のクラスを使用してユーザーから入力を取得する他の方法について知りたいです。では、ユーザーから入力を取得する他の方法はありましたか? Scannerもしそうなら、それはクラスよりも効率的でしたか?
6 に答える
ConsoleJava 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 です。ユーザーは、必要に応じて、任意の数値または文字列を持つことができます。