0

私は効率について話している。コンソール入力から int を読み取る必要があります。入力が各行に 1 つの int の形式であり、他の値がないことは確かです。

Scanner オブジェクトが定義されています。

Scanner scan = new Scanner(System.in);

私はどちらかを行うことができます:

int a = scan.nextInt();

また

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

どちらの方法が良いですか?

4

2 に答える 2

0

私の推測では、ユーザーからの将来の入力に影響を与える可能性のあるゴミを残す可能性のある最初のものとは対照的に、2番目のものは入力行全体を使用すると思います。一般に、ユーザーからさらに入力を要求する前に、入力行をクリアすることをお勧めします。最初の方法ではそれができないため、それを行うには別のコマンドが必要になります。

于 2015-03-23T19:25:59.580 に答える
0

のドキュメントによると、Scanner.nextInt()

トークンは、すべてのロケール固有の接頭辞、グループ セパレータ、およびロケール固有の接尾辞を削除するかのように int 値に変換され、次に Character.digit を介して非 ASCII 数字を ASCII 数字にマッピングし、ロケール固有の負のプレフィックスとサフィックスが存在し、結果の文字列を指定された基数で Integer.parseInt に渡しました。

とにかくそうInteger.parseInt()呼ばれます。各行がすでにparseIntすぐに呼び出せる形式になっていることがわかっている場合は、これらの初期チェックをすべて省略して直接実行するのが理にかなっていInteger.parseInt(scan.nextLine());ます。

于 2015-03-23T19:35:29.617 に答える