简体   繁体   中英

Taking input an arbitrary number of times

I am looking to solve a coding problem, which requires me to take the input an arbitary number of times with one integer at one line. I am using an ArrayList to store those values.


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.

For example

Input:

12
2
3
6 
16
17

My attempt to take input in Java:

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

However, when I try to print the elements of the list to check if I have taken the inputs correctly, I don't get any output. the corresponding correct code in C goes like this:


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

Please help me fix this thing with Java.


(PS: I am not able to submit solutions in Java because of this )

You can do this one thing! At the end of the input you can specify some character or string terminator.

code:

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);
}

sample input:

10
20
30
40
53
exit

output:

list contains
10
20
30
40
53

Can you do something like this:

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

If there is some another value like character, loop finishes.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM