1

我正在寻求解决一个编码问题,这需要我在一行中使用一个整数来输入任意次数。我正在使用 anArrayList来存储这些值。


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 回答