Esta pregunta ya tiene una respuesta aquí:
- Scanner.nextLine() no actua correctamente despues de Scanner.nextInt() 1 respuesta
El planteamiento del problema es este:
Implemente mediante la clase String, una aplicación que cuente el número de vocales de un texto.
La aplicación ya fue creada y logra satisfacer los requisitos solicitados. Sin embargo, a pesar de ser una aplicación simple, siempre integro una sentencia While que engloba a toda la lógica de la aplicación para que al final de la ejecución de esta, siempre permita poder repetir el proceso. El código es el siguiente:
package ejercicio1capitulo4; import java.util.Scanner; public class Ejercicio1Capitulo4 { public static void main(String[] args) { Scanner Leer = new Scanner(System.in); String C; int X, TC, A, E, I, O, U, TV; X = 1; while (X == 1) { A = 0; E = 0; I = 0; O = 0; U = 0; TC = 0; TV = 0; System.out.println("Ingrese la palabra a la que desea calcular el número de vocales: "); C = Leer.nextLine(); TC = C.length(); for (int i = 0; i < TC; i++) { if(C.charAt(i) == 'a' || C.charAt(i) == 'A') { A = A + 1; } else if(C.charAt(i) == 'e' || C.charAt(i)=='E') { E = E + 1; } else if(C.charAt(i) == 'i' || C.charAt(i)=='I') { I = I + 1; } else if(C.charAt(i) == 'o' || C.charAt(i)=='O') { O++; } else if(C.charAt(i) == 'u' || C.charAt(i)=='U') { U++; } } TV = A + E + I + O + U; System.out.println("\nCantidad de letras A: " + A); System.out.println("\nCantidad de letras E: " + E); System.out.println("\nCantidad de letras I: " + I); System.out.println("\nCantidad de letras O: " + O); System.out.println("\nCantidad de letras U: " + U); System.out.println("\nCantidad de letras vocales: " + TV); System.out.println("\n¿Desea evaluar otra palabra? 1-SI 0-NO"); X = Leer.nextInt(); } }
El problema radica en que luego de ingresar el último dato, el de evaluar una nueva palabra, el ciclo efectivamente se repite pero no me permite ingresar una nueva palabra a pesar de que este proceso esté dentro del ciclo While. Esta es la muestra de la salida: