Java Scanner no "terminará" la lectura de entrada

He tenido problemas para usar la clase de escáner de Java. Puedo hacer que lea bien mi entrada, pero el problema es cuando quiero generar algo. Dadas las múltiples líneas de entrada, quiero imprimir solo UNA línea cuando toda la entrada se haya leído por completo. Aquí está el código que uso para leer la entrada:

    public static void main(String[] args){
    Scanner scanner = new Scanner(System.in);   //scanner reads block of input
    while(scanner.hasNextLine()){    
        //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");
    }

Incluso cuando se han leído todas las líneas de entrada, el programa no alcanza el mensaje System.out.println. (Tenga en cuenta que el mensaje no puede ir a ningún otro lado o se generará tantas veces como se ejecute el bucle). ¿Cómo puedo solucionar esto? Cualquier ayuda sería muy apreciada.

Respuestas a la pregunta(8)

Su respuesta a la pregunta