Comment détecter les expressions du FOLKLORE en Java?

J'ai essayé quelques méthodes pour détecter les expressions du FOLKLORE dans mon code mais il ne fonctionne toujours pas.
J'ai essayé d'utiliser BufferedReader, Scanner, et à l'aide de char u001a pour marquer les expressions du FOLKLORE, mais toujours pas de sens à mon code.
Voici mon dernier code :

    Scanner n=new Scanner(System.in);
    String input;
    int counter=0;

    while(n.hasNextLine())
    {
        input=n.nextLine();
        char[] charInput=input.toCharArray();
        for (int i = 0; i < input.length(); i++) {
            if(charInput[i]=='"')
            {
                if(counter%2==0)
                {
                    System.out.print("``");
                }
                else
                {
                    System.out.print("''");
                }
                counter++;
            }
            else
            {
                System.out.print(charInput[i]);
            } 
        }
        System.out.print("\n");
    }

Le programme censé arrêté quand il est déjà atteint les expressions du FOLKLORE, mais je ne sais pas pourquoi, pour certaines raisons, il continue de courir et d'entraîner une erreur d'exécution.
S'il vous plaît aider.
Par la façon dont je suis nouveau ici, désolé si ma question n'est pas vraiment clair pour être compris,
Je vous remercie avant 🙂

Quelle est la durée d'erreur que vous obtenez?..
Vérifiez également ceci post sur comment lire un fichier à l'aide de FileReader + BufferedReader
Je crois que le scanner va juste retourner null au lieu d'un caractère EOF. Cela expliquerait l'exception d'exécution.
Pas de hasNextLine va vérifier le sous-jacent de lecture pour les nuls et retourne la valeur false. Son programme fonctionne comme prévu sur ma machine.
Vous êtes à la lecture de l'entrée à partir de la console (stdin), peut-être qu'il se comporte de façon étrange sur votre hôte. Essayez de lire à partir d'un fichier que vous ouvrez.

OriginalL'auteur Bertha Alan | 2016-04-09