OneMoreError
OneMoreError

Reputation: 7728

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 )

Upvotes: 1

Views: 1211

Answers (2)

codeMan
codeMan

Reputation: 5758

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

Upvotes: 3

bellum
bellum

Reputation: 3710

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.

Upvotes: 0

Related Questions