Java: dlaczego ten kod nie działa? Nieskończona pętla?

Tak więc, jak możesz stwierdzić po mojej próbie, próbuję dowiedzieć się, jak utworzyć program, który daje użytkownikowi 5 sekund na wprowadzenie niektórych linii tekstu, a następnie Skaner policzy, ile linii zostało wprowadzonych. Właśnie zacząłem uczyć się Javy jako mojego drugiego języka, więc spróbuj wszystko wyjaśnić tak prosto, jak to możliwe :)

Mam dwie teorie, dlaczego to nie działa. Pierwszy polega na tym, że nextLine () zwróci całą linię, niezależnie od tego, czy jest pusta, czy nie, zamiast NL równa się „”, będzie w rzeczywistości równa całej linii (tj. „”). Moja druga teoria mówi, że nie mam pojęcia, co robię, a przepływ programu jest wszędzie. W każdym razie oto mój kod:

class OrigClass{
    public static void main(String args[]){
        Scanner ScanObj = new Scanner(System.in);
        int Count = 0;
        String NL = ScanObj.nextLine();
        try{
            Thread.sleep(5000);}
        catch (InterruptedException e){
            e.printStackTrace();
        }
        while (!NL.equals("")){
            Count++;
            NL = ScanObj.nextLine();
        }
        System.out.print("You Entered " + Count + " Lines.");
        ScanObj.close();
    }
}

Och, zapomniałem wspomnieć o hasNext (), co pierwotnie próbowałem:

       import java.util.Scanner;

    class OrigClass{
public static void main(String args[]){
    Scanner ScanObj = new Scanner(System.in);
    int Count = 0;
    try{
    Thread.sleep(5000);}
    catch (InterruptedException e){
        e.printStackTrace();
    }
    while (ScanObj.hasNext() == true){
    Count++;
    ScanObj.nextLine();
    }
    System.out.print("You Entered " + Count + " Lines.");
    ScanObj.close();
}
    }

questionAnswers(2)

yourAnswerToTheQuestion