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: niurkafer en 19 de Agosto 2015, 17:26
-
Me ha costado un poco pero me gustaria saber que tal ha quedado el ejercicio CU00662B
Crea una clase en cuyo método main ejecutes una comparación letra a letra usando equals de dos palabras usando bucles. Por ejemplo si las palabras son “avispa” y “ave” el programa debe dar como resultado: ¿Letra 1 igual en las dos palabras? True. ¿Letra 2 igual en las dos palabras? True ¿Letra 3 igual en las dos palabras? False ¿Letra 4 igual en las dos palabras? La palabra 2 no tiene letra 4 ¿Letra 5 igual en las dos palabras? La palabra 2 no tiene letra 5 ¿Letra 6 igual en las dos palabras? La palabra 2 no tiene letra 6.
import java.util.Scanner;
public class ComparacionLetra {
private String palabra1;
private String palabra2;
public static void main (String [ ] Args) {
System.out.println ("por favor introduzca La primera Palabra: ");
Scanner entrada1 = new Scanner(System.in);
String palabra1 = entrada1.nextLine();
System.out.println ("por favor introduzca la segunda palabra: ");
Scanner entrada2 = new Scanner(System.in);
String palabra2 = entrada1.nextLine();
if (palabra1.length() >= palabra2.length()){
int i = 0;
while (i<palabra2.length()){
if(palabra1.substring(i,i+1).equalsIgnoreCase(palabra2.substring(i,i+1))){
System.out.println ("¿Letra " +(i+1)+" es igual en las dos palabras?: True");
}
else{ System.out.println ("¿Letra " +(i+1)+" es igual en las dos palabras?: False");
}
i++;
}
while(i < palabra1.length()){
System.out.println("¿Letra " + (i+1) + " es igual en las dos palabras?: La palabra 2 no tiene letra " + (i+1));
i++;
}
}else{
int i = 0;
while(i < palabra1.length()){
if(palabra1.substring(i, i+1).equalsIgnoreCase(palabra2.substring(i, i+1))){
System.out.println("¿Letra " + (i+1) + " es igual en las dos palabras?: True");
}else{
System.out.println("¿Letra " + (i+1) + " es igual en las dos palabras?: False");
}
i++;
}
while(i < palabra2.length()){
System.out.println("¿Letra " + (i+1) + " es igual en las dos palabras?: La palabra 1 no tiene " +(i+1)+" letras ");
i++;
}
}
}
}
-
Hola niurkafer, el código funciona según solicitaba el ejercicio, no obstante puede mejorarse.
Tu lógica ha sido "si la palabra 1 es más larga hago todo esto" y si la palabra 2 es más larga hago todo esto.
Pero nos queda un código más corto si examinamos las palabras y decimos, palabraMasLarga = ... y palabraMasCorta = ... y con eso solo hay que plantear un bucle y un proceso en lugar de dos, como se hace en el tema www.aprenderaprogramar.com/foros/index.php?topic=2089
Salu2
-
ok vale muchas gracias