はじめに
学習する為に使用したJavaの教科書によっては難易度が変わるかもしれません。
問題へのリンク
解答コード
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
final int A = scanner.nextInt();
final int B = scanner.nextInt();
System.out.println(A + B);
scanner.close();
}
}
解説
1行空白区切りで入力値を受け取るので、scanner.nextLine()しか知らない場合には少し難易度が上がります。
文字列を分割する方向で考えるのではなく、scanner.nextInt()を覚えましょう。
nextInt()は改行だけではなく、空白も入力値の区切りとして認識します。
nextLine()だと"1 1"(入力例1の場合)という文字列を取得してしまいますが、nextInt()だと1つずつintで取得できます。nextLine()は改行文字のみを区切りとして認識します。他の問題で文字列を取得する際も、空白文字も区切り文字として認識できるnext()を使った方がいいかもしれません。
おまけ
nextLine()とnextInt()を混用するのはなるべく避けましょう。nextInt()は仕様上、intの取得後改行文字を残すため、nextInt()の後にnextLine()を使用すると空文字のみを取得してしまう可能性があります。
nextLine()を使う場合、全てをnextLine()に統一することをお勧めします。
もしくは、paizaで文字列を取得する際は、空白文字を取得する必要がある場合を除いてnext()を使用しましょう。
どうしても混用させたい場合は、改行文字が残っている場所でnextLine()を二回使用し、後者の値のみを使用すると良いでしょう。