JavaのScannerクラスでハマる

ハマりました。ScannerクラスのnextLine() がキーボードの入力値を一行分取得してくるという説明がネットでは多かったんですが、複数行入力の場合、一行目は入力値の総数になるみたいです。(と思ったらPaizaラーニングの問題だけですかね)

f:id:ts0818:20170619230128p:plain

 

import java.util.*;

public class Main {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        // 1行目は入力値の総数らしい、酷い仕様な気が...
        int line_count = Integer.parseInt(sc.nextLine());
        // そのおかけげで、入力値格納用の配列の要素数が決まるけど
        int[] number = new int[line_count];
        int count = 0;
        // 入力値を配列に格納
        while(sc.hasNext()){
            number[count] = Integer.parseInt(sc.nextLine());
            count++;
        }

        // 並び替え(昇順)
        Arrays.sort(number);

        // 入力値をアウトプット
        for(int num: number){
            System.out.println(num);              
        }

    }
}

しばらくはJavaの学習メモになっていきそうです。結局、Scannerクラスってどんなときに使うんですかね。

広告を非表示にする