Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: manulynk en 14 de Mayo 2013, 12:12

Título: intercambiar caracteres de dos cadenas Java
Publicado por: manulynk 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
Título: Re:intercambiar caracteres de dos cadenas
Publicado por: Mastermind 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!


Título: Re:intercambiar caracteres de dos cadenas
Publicado por: manulynk 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