Java Scanner won't “finish” reading input

前端 未结 4 1668
不思量自难忘°
不思量自难忘° 2021-01-14 17:09

I\'ve been having trouble using java\'s Scanner class. I can get it to read my input just fine, but the problem is when I want to output something. Given multiple lines of i

4条回答
  •  长情又很酷
    2021-01-14 17:31

    The magic of

    Scanner scanner = new Scanner(System.in);
        while(scanner.hasNextLine()){ 
    

    Is that there will never stop being input from System (unless you close the input with ctrl+d (for macs)).

    To stop the loop, I suggest throw something more in the condition than just hasNextLine().

    E.g.

    Scanner scanner = new Scanner(System.in);   //scanner reads block of input
        int BLOCK_SIZE  =3,count=1;
        while(scanner.hasNextLine() && count++ <= BLOCK_SIZE){   //<- Use count here.
            //body of loop goes here
            String s = scanner.nextLine();
            Scanner ls = new Scanner(s);   //scanner to parse a line of input
            while(ls.hasNext()){
            //body of nested loop goes here
            ls.next();
            }
        }
        System.out.println("Fin");
    
    }
    

提交回复
热议问题