Note: Je suis en cela sur Netbeans 8.2 et Windows 7ne peut pas lire correctement en caractères à l'aide de 'Scanner' et '.next() charAt (0).'
Ce programme demande l'entrée d'utilisateur, Ils peuvent entrer un personnage, appuyer sur la barre d'espace ou entrer une période pour arrêter le programme.
1) Quand je rentre un personnage que je reçois le message d'erreur suivant: "You entered a java.util.Scanner[delimiters=\p{javaWhitespace}+][position=1][match valid=true][need input=false][source closed=false][skipped=false][group separator=\,][decimal separator=\.][positive prefix=][negative prefix=\Q-\E][positive suffix=][negative suffix=][NaN string=\Q?\E][infinity string=\Q8\E]"
2) Quand je frappe la barre d'espace je reçois pas de commentaires jusqu'à ce que j'entrer dans une période, puis je reçois un message d'erreur semblable au-dessus mais le programme s'arrête.
3) Si j'entre une période, je reçois également un message d'erreur similaire mais le programme s'arrête.
Ce que je me attends est la suivante: a) si je frappe la barre d'espace, il renvoie un message disant que je frappe la barre d'espace et incrémente les compteurs b) si je rentre un caractère, puis il retourne un message indiquant le caractère saisi et incrémente le compteur ctr
c) si une période est entré il retourne un message indiquant que plus le nombre de fois pour arrêter le programme
Je devine que le problème est avec la déclaration keystroke = userInput.next().charAt(0);
. Je pensais que l'utilisation de userInput.next().charAt(0)
fonctionnerait car ce sont toutes des frappes et des caractères uniques. L'espace est un personnage, non? Faux? Donc, si quelqu'un pouvait me diriger dans la bonne direction pour résoudre ce problème, cela serait apprécié.
/* reads a char, a space, or a period from keyboard, returns user input,
counts number of spaces and total number of entries */
package ch03_36_exercise_01;
import java.util.Scanner;
public class Ch03_36_Exercise_01 {
public static void main(String args[]) throws java.io.IOException {
Scanner userInput = new Scanner(System.in);
char keystroke; // character that user enters
int ctr = 0, spaces = 0; // num of tries to stop run, num of spaces entered
do {
// ask for user input
System.out.print("Enter a character, or hit the space bar," +
" or enter a period to stop: ");
keystroke = userInput.next().charAt(0);
if (keystroke == ' ') {
System.out.println("You entered a space");
spaces++; // increment space bar count
}
else
System.out.println("You entered a " + keystroke);
// increment keystroke count
ctr++;
}
while (keystroke != '.');
System.out.print("It took " + ctr + " tries to stop");
if (spaces > 0)
System.out.println(" and you hit the space bar " + spaces + " times\n");
else
System.out.println();
}
}
'autre System.out.println ("vous avez entré un" + UserInput)' ---> changer cela 'autre System.out.println (» Vous avez entré une "+ frappe de clavier"; –