Javaで標準入力

AtCoderの問題をJavaで解いてみようとしたところ、標準入力の使い方が分からなかったので調べました。

標準入力

Javaでは入力を受け取る際にはScannerにSystem.inを渡して使います。また、受け取るデータの型によっていくつかのメソッドを使い分けます。

  • 単語の場合はnext()
  • 整数の場合はnextInt()
  • 文字列(1行)の場合はnextLine()

使用例1

以下は、標準入力から2つの数を与え、2つの数の積(掛け算)した結果が偶数(Even)か奇数(Odd)かを判定するプログラムです。

ABC086 A. Product

public class ABC086_A_Product {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        if ((a * b) % 2 == 0) {
            System.out.println("Even");
        } else {
            System.out.println("Odd");
        }
    }

}

※入力する時は、数値と数値の間は半角スペースで区切っています。

入力例1:3 2
出力例1:Even

入力例2:1 25
出力例2:Odd

使用例2

以下は、3桁の0か1の入力を想定し、入力された1の個数を数えるプログラムです。

ABC081 A. Placing Marbles

import java.util.Scanner;

public class ABC081_A_Placing_Marbles {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s = sc.next();

        //文字列から0を取り除きます。
        s = s.replaceAll("0", "");

        //文字数を出力します。
        System.out.println(s.length());
    }
}

入力例1:101
出力例1:2

入力例2:000
出力例2:0

参考資料
AtCoderに登録したら解くべき精選過去問10をJavaで解いてみた - Qiita
AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~ - Qiita
AtCoder Problems