Comment puis-je imprimer un seul mot sur une entrée utilisateur en Java? exemple: entrée utilisateur: « Nous aimons maman, elle est le meilleur ». le programme suppose d'imprimer « maman » à cause de premier et dernier caractères sont les mêmes. mon code n'imprime rien à la fin. Voici mon code:
Scanner s = new Scanner(System.in);
System.out.println("Please enter a Sentence");
String input=s.nextLine();
String builderString=" ";
for(int i=0,j=0;i<input.length();i++){
if(input.charAt(i)==' '){
j=i+1; //upper the value of J if there is space (J will always check first char)
if (input.charAt(j)==input.charAt(i)&&j<i) {//an if statement to check for match chars.
builderString=" "+input.charAt(i);// insert the char into a new string to print it in the console.
}
}
}
}
System.out.println(builderString);
}
}
Plutôt que d'analyser toutes les lettres de la chaîne, vous pouvez diviser votre entrée dans un tableau de mots et de vérifier chaque mot individuellement.
Vous pouvez garder votre boucle , mais il vous suffit de vérifier si le chart at 0
est le même que celui deword.length() - 1
Voici un exemple de travail. S'il vous plaît noter que j'ai enlever la partie du scanner pour le faire fonctionner dans la cour de récréation j'utilise.
// This would be de equivalent of your scanner
String input = "We love mom she is the best";
String[] words = input.split(" ");
String output = "";
for(int i=0;i<words.length; i++){
String currentWord = words[i];
if(currentWord.charAt(0) == currentWord.charAt(currentWord.length() -1)) {
output = currentWord;
}
}
System.out.println(output);
Vous n'avez pas besoin de votre j
variable de plus.
Vous pouvez le tester ici