Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

139
Vistas
Cambiar incremento de caso solo agregando una vez a la matriz

Tengo que obtener una entrada de texto del usuario y luego tengo que reemplazar cada vocal a,e,i,o,u por 1,2,3,4,5 y mostrar la cantidad de reemplazos para cada vocal y luego también el texto cambiado. El problema es que el texto al final se ve bien reemplazado, pero la cantidad de reemplazos se muestra como 1.

(Intenté hacerlo a continuación contando los 1,2,3,4 y 5 en "myText" y funciona perfectamente, pero también cuenta si el usuario ingresa un número, por lo que es un problema)

Aquí está la primera parte:

 public static void replaceAndCount(String myText, int[] vowels) { for (int i = 0; i < myText.length(); i++) { switch (myText.charAt(i)) { case 'a': vowels[0]++; myText = myText.replace('a', '1'); case 'e': vowels[1]++; myText = myText.replace('e', '2'); case 'i': vowels[2]++; myText = myText.replace('i', '3'); case 'o': vowels[3]++; myText = myText.replace('o', '4'); case 'u': vowels[4]++; myText = myText.replace('u', '5'); } } }
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Tienes 2 problemas en tu código.

  1. Debe usar break en cada caso, de lo contrario, todos los casos debajo del caso coincidente también se ejecutarán. Ejemplo,
 case 'a': vowels[0]++; myText = myText.replace('a', '1'); break; case 'e': vowels[1]++; myText = myText.replace('e', '2'); break;
  1. String replace(old,new) reemplazará todas las apariciones del carácter antiguo con nuevo. Por eso, la cantidad de reemplazos se muestra como 1 .
    Consulte esto para el reemplazo de cadenas en un índice específico
over 4 years ago · Santiago Trujillo Denunciar

0

Espero que este código a continuación funcione para usted

Código:

 public class ReplaceVowels { public static void main(String[] args) { String myText = "aaaeiou"; int[] vowels = new int[5]; replaceAndCount(myText.toLowerCase(), vowels); } private static void replaceAndCount(String text, int[] vowels) { StringBuilder myText = new StringBuilder(text); for (int i = 0; i < myText.length(); i++) { switch (myText.charAt(i)) { case 'a': vowels[0]++; myText.setCharAt(i, '1'); break; case 'e': vowels[1]++; myText.setCharAt(i, '2'); break; case 'i': vowels[2]++; myText.setCharAt(i, '3'); break; case 'o': vowels[3]++; myText.setCharAt(i, '4'); break; case 'u': vowels[4]++; myText.setCharAt(i, '5'); } } for (int vowel : vowels) { System.out.println(vowel); } System.out.println(myText); }

Resultados ingrese la descripción de la imagen aquí

Puede consultar esto para reemplazar un solo carácter

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda