Autor Tema: intercambiar caracteres de dos cadenas Java  (Leído 10632 veces)

manulynk

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 4
    • Ver Perfil
intercambiar caracteres de dos cadenas Java
« en: 14 de Mayo 2013, 12:12 »
Buenas,

Estoy intentando hacer un ejercicio en el que me piden que dadas dos cadenas de texto tipo String, que deben ser introducidas por teclado, se intercambien los caracteres de cada una de las cadenas cada dos caracteres.

O sea primero habría que introducir por teclado: "Buenos días" y luego "Hasta mañana" (es un ejemplo no son las frases que me piden pero con una orientación me arreglaré), y la salida una vez realizados los intercambios seria:
"husnasmdñan"

Osea, cambiar los caracteres cuya posición es múltiplo de 2.

He estado mirando sé que se pueden cambiar unos caracteres por otros con Replace pero no acabo de encontrar como hacer cuando se trata de 2 cadenas.

Con alguna orientación me conformaría

Gracias de antemano

Saludos
« Última modificación: 20 de Septiembre 2014, 18:12 por Alex Rodríguez »

Mastermind

  • Experto
  • *****
  • Mensajes: 536
    • Ver Perfil
Re:intercambiar caracteres de dos cadenas
« Respuesta #1 en: 14 de Mayo 2013, 13:02 »
Hola manu qué tal, te doy una idea de cómo creo que podría hacerse:

- Pides las entradas por teclado usando la clase Scanner

Scanner entradaEscaner = new Scanner (System.in);
entradaTeclado1 = entradaEscaner.nextLine (); 

Ahora ya tienes la entrada de teclado en un String.

Usa el método length para saber el número de caracteres que tiene la entrada de teclado.

A continuación, crea dos arrays de caracteres (char) que podemos llamar cadena1 y cadena2 con el número de items que hayas obtenido como longitud de cada cadena

Buenos días - > longitud 11 (contando los espacios)
Hasta mañana - > longitud 12 (contando los espacios)

Tienes que rellenar cada posición del array con un elemento de la cadena que puedes extraer usando el método substring (https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=586:estudiando-el-concepto-de-metodo-java-el-metodo-substring-de-la-clase-string-cu00649b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188)

A continuación usa un bucle desde 1 hasta la longitud de la cadena donde vas a reemplazar y en cada paso haces

String resultado;
for (int i=0; i<longitudcadena1; i++) {
     if (i % 2 == 0) {
          resultado = resultado + cadena2[ i]
} else { resultado = resultado + cadena1[i ]}

Es decir en cada paso metes un caracter de un string o de otro para formar el nuevo string.

Finalmente muestra el resultado:

System.out.println ("El resultado es: " + Resultado);

i % 2 te sirve para saber si estás en un caracter que debas reemplazar. Te devuelve 1 si estás en posición 1, 3, 5, 7, etc. y 0 si estás en posición 2, 4, 6, 8, etc.

Vas a necesitar más cosas, como introducir un mecanismo de seguridad para el caso de que una cadena se acabe, entonces no podrás seguir introduciendo caracteres.

He mezclado varias cosas pero espero que como idea para empezar a plantear el código te sirva. Saludos!



manulynk

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 4
    • Ver Perfil
Re:intercambiar caracteres de dos cadenas
« Respuesta #2 en: 14 de Mayo 2013, 13:42 »
Y yo que pensaba que no encontraba nada porque era demasiado fácil.....

Muchas grácias Mastermind por las pistas y la orientación,  lo probaré a ver que tal.

Saludos

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".