1

コーディングの問題を解決しようとしています。これには、1 行に 1 つの整数を使用して任意の回数入力する必要があります。ArrayListこれらの値を格納するために を使用しています。


The input will contain several test cases (not more than 10). Each
testcase is a single line with a number n, 0 <= n <= 1 000 000 000.
It is the number written on your coin.

例えば

Input:

12
2
3
6 
16
17

Javaで入力を取得しようとする私の試み:

List<Integer> list = new ArrayList<Integer>();
Scanner inp = new Scanner(System.in);
while(inp.hasNext()){
    list.add(inp.nextInt());
    }

ただし、リストの要素を印刷して、入力が正しく行われたかどうかを確認しようとすると、出力が得られません。対応する C の正しいコードは次のようになります。


unsigned long n;
while(scanf("%lu",&n)>0)
{
   printf("%lu\n",functionName(n));
}

Javaでこの問題を解決するのを手伝ってください。


(PS: このため、Java でソリューションを送信できません)

4

2 に答える 2

3

これ一つでできる!入力の最後に、文字または文字列ターミネータを指定できます。

コード:

List<Integer> list = new ArrayList<Integer>();
Scanner inp = new Scanner(System.in);
while(inp.hasNextInt())
{
    list.add(inp.nextInt());
}
System.out.println("list contains");
for(Integer i : list)
{
    System.out.println(i);
}

サンプル入力:

10
20
30
40
53
exit

出力:

list contains
10
20
30
40
53
于 2012-11-20T12:52:22.903 に答える
0

次のようなことができますか:

    List<Integer> list = new ArrayList<Integer>();
    Scanner inp = new Scanner(System.in);
    while(inp.hasNextInt()){
        list.add(inp.nextInt());
    }

文字のような別の値があれば、ループは終了します。

于 2012-11-20T12:21:21.203 に答える