JavaのnextIntとnextLineの併用について

 こんにちは、Yuu_snowです。今回は、Javaでint型(整数型)の入力を得ることができるnextIntとString型(文字列型)の入力を得ることができるnextLineの併用したときの問題を以下に述べていこうと思います。

 

 

nextIntとnextLineの併用の問題

以下のようなプログラムを考えよう。

 このプログラムを動かしたらどのような出力がされると思います?

実際に動かして確認してみましょう!

 

出力結果は以下のようになります。

 なんと、数字を入力した後文字列を入力する暇もなくすぐに結果が表示されてしまいました。これは、なぜかと言うと数字を入力するときに入力を決定するときにエンターを押していて、それがstrの中に入ってしまったからなんです。

 

解決方法

 これを解決する方法は、多く存在するのですが、今回はnextLineだけを使って数字と文字列を読み込んでいきます。

 

 何が変わったのかというと、数字を読み取るところをnextLineで文字列として読みこんでparseIntというStringをint型に変える関数を用いているところが変わりました。

 こうすることにより、数字も文字列も読み取ることができます。

実際に試しましょう!

 

 しっかりと文字列も読み取ることができましたね。

ここまで読んでくださいありがとうございます。ぜひ、他の記事も読んでいってください。