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
Je crois que le scanner va juste retourner
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.
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
Vous devez vous connecter pour publier un commentaire.
Qu'il continue de fonctionner parce qu'il n'a pas rencontré les expressions du FOLKLORE. À la fin du flux:
read()
retourne -1.read(byte[])
retourne -1.read(byte[], int, int)
retourne -1.readLine()
renvoie la valeur null.readXXX()
pour toute autre X jetteEOFException
.Scanner.hasNextLine()
renvoie la valeur false.Scanner.nextLine()
jetteNoSuchElementException
.Sauf si vous avez rencontré un de ces, votre programme n'a pas rencontré la fin du flux. NB
\u001a
est un Ctrl/z. Pas les expressions du FOLKLORE. EOF n'est pas une valeur de caractère.hasNext...
appel, non seulementhasNextLine
partout, depuis que renvoie true si vous lisez le dernier jeton avecnext
et il y a une ligne vide à la fin.OriginalL'auteur user207421
C'est ce que j'ai fait
A fonctionné pour moi
OriginalL'auteur Srijan Goyal