Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: arcanFAC en 31 de Marzo 2015, 01:05
-
Hola de nuevo :P :-[ , aquí presento este ejercicio para su correccion respectiva:
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 Comparacion{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String palabra1, palabra2;
System.out.println("Por favor ingrese dos palabras que desea comparar");
palabra1 = sc.next();
palabra2 = sc.next();
int mayor, contador=0;
if(palabra1.length() > palabra2.length()){mayor = palabra1.length();}
else{mayor = palabra2.length();}
for(int i=0; i<mayor; i++){
contador ++;
System.out.print("Letra " + (i + 1) + " igual en las dos palabras? ");
if(palabra1.length() >= contador && palabra2.length() >= contador){
if(palabra1.substring(i, i+1).equals(palabra2.substring(i, i+1))){System.out.println("True");}
else {System.out.println("False");}
}
else if(palabra1.length() < palabra2.length()){
System.out.println("La palabra 1 no tiene letra " + (i+1));
}
else {
System.out.println("La palabra 2 no tiene letra " + (i+1));
}
}
}
}
-
Buenas arcanFAC.
El ejercicio esta correcto.
Como algo a mejorar y por ser purista , recuerda inicializar las variables.
Los tipo String a "", int a cero, double a 0.0, etc, ...
Un saludo.
-
Hola arcanFAC, hay un detalle que te podrías plantear: ¿es realmente necesaria la variable contador? Fíjate que tienes esta variable dentro de un bucle for, el propio bucle for ya cuenta, por lo que no sería necesario usar otra variable adicional para contar. En este caso contador equivale a i+1 siendo i la variable que cuenta en el bucle for
El código quedaría así:
import java.util.Scanner;
public class Comparacion2{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String palabra1, palabra2;
System.out.println("Por favor ingrese dos palabras que desea comparar");
palabra1 = sc.next();
palabra2 = sc.next();
int mayor;
if(palabra1.length() > palabra2.length()){mayor = palabra1.length();}
else{mayor = palabra2.length();}
for(int i=0; i<mayor; i++){
System.out.print("Letra " + (i + 1) + " igual en las dos palabras? ");
if(palabra1.length() >= i+1 && palabra2.length() >= i+1){
if(palabra1.substring(i, i+1).equals(palabra2.substring(i, i+1))){System.out.println("True");}
else {System.out.println("False");}
}
else if(palabra1.length() < palabra2.length()){
System.out.println("La palabra 1 no tiene letra " + (i+1));
}
else {
System.out.println("La palabra 2 no tiene letra " + (i+1));
}
}
}
}
Salu2
-
Es vedad, realmente no caí en cuenta mientras lo diseñaba. Gracias por el detalle.Saludos.