horoyoisawaのゴミ箱

いろいろ書きます

【Java】入力を受け取るときに間違えたやつ。

f:id:horoyoisawa:20201202125359p:plain
以下のようなコードを書いたとする。

import java.util.Scanner;

public class Solution {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int i = scan.nextInt();
        double d = scan.nextDouble();
        String s = scan.nextLine();
        scan.close();

        System.out.println("String: " + s);
        System.out.println("Double: " + d);
        System.out.println("Int: " + i);
    }
}

入力例は以下。
1
3.14
My name is horoyoisawa.

結果は以下。

String:
Double: 3.14
Int: 1

sの中身が空になる。

結構よくあるやつだ。だから一行加えてみる。

String ss = scan.nextLine(); // 追加
String s = scan.nextLine();

こうすると、

String: My name is horoyoisawa.
Double: 3.14
Int: 1

となり、望んだ結果が得られる。

見ればわかるように、改行を考慮していなかったことで生まれた間違いだ。

今後気をつけたい。