¿Cómo se imprime una sola palabra de una entrada de usuario en Java? ejemplo: la entrada del usuario: "Amamos a mamá que es el mejor". el programa supone que debe imprimir "madre" por primera y última caracteres son los mismos. mi código no se imprime nada al final. Aquí está mi código:
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);
}
}
En lugar de analizar cada letra de la cadena, se puede dividir a su entrada en una matriz de palabras y comprobar cada palabra individualmente.
Usted puede mantener su bucle, pero sólo hay que comprobar si el chart at 0
es el mismo que el deword.length() - 1
Aquí está un ejemplo de trabajo. Tenga en cuenta que he quitar la parte del escáner para que funcione en el parque infantil que estoy usando.
// 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);
También no necesita su j
variable de no más.
Puede probarlo aquí