Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Chompy129 en 17 de Diciembre 2016, 00:42
-
El método equals en Java. Diferencia entre igualdad e identidad. Comparar objetos. Ejemplos. (CU00662B)
Aquí les dejo el ejercicio del curso de fundamentos de programación orientada a objetos:
Código Java
import java.util.Scanner;
/**
* Funciona para comparar tipos objetos y tipos primitivos.
*
* @author Chompy129
* @version 1.0
*/
public class Comparador{
public static void main(String[] args){
Scanner entradaScanner= new Scanner(System.in);
String cadena1= "";
String cadena2= "";
//Se obtienen los valores de cadena1 y cadena2.
System.out.print("Introdusca la primera cadena: ");
cadena1= entradaScanner.nextLine();
System.out.print("Introdusca la segunda cadena: ");
cadena2= entradaScanner.nextLine();
System.out.println("Se recibe \"" + cadena1 + "\" y \"" + cadena2 + "\".");
System.out.println("Comparacion:\n");
//Proceso de comparacion:
//El bucle se mantiene mientras i sea menor a la cantidad de caracteres de cadena1 o cadena2.
for(int i= 0; i < cadena1.length() || i < cadena2.length(); i++){
System.out.print("¿Caracter "+(i+1)+" igual en ambos?: ");
// Si i+1 supera la cantidad de caracteres de cadena1 o cadena2
// se indica que tal cadena no posee tal cáracter.
if(i+1 > cadena2.length()){
System.out.println("Cadena 2 no tiene "+(i+1)+" cáracter.");
}
else if(i+1 > cadena1.length()){
System.out.println("Cadena 1 no tiene "+(i+1)+" cáracter.");
}
else{
// Si no se cumplen las anteriores condiciones entonces se comparan las cadenas
// cáracter por cáracter, devolviendo true si son iguales y false si son distintas.
if(cadena1.substring(i, i+1).equals(cadena2.substring(i, i+1))){
System.out.println(true);
}
else{
System.out.println(false);
}
}
}
}
}
Link de la clase: https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=628:el-metodo-equals-en-java-diferencia-entre-igualdad-e-identidad-comparar-objetos-ejemplos-cu00662b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188 (https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=628:el-metodo-equals-en-java-diferencia-entre-igualdad-e-identidad-comparar-objetos-ejemplos-cu00662b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188)
-
Hola.
El ejercicio es correcto.
Otra forma de hacerlo podría ser:
import java.util.Scanner;
public class Comparador1{
public static void main(String[] args){
Scanner entradaScanner= new Scanner(System.in);
String cadena1= "";
String cadena2= "";
//Se obtienen los valores de cadena1 y cadena2.
System.out.print("Introdusca la primera cadena: ");
cadena1= entradaScanner.nextLine();
System.out.print("Introdusca la segunda cadena: ");
cadena2= entradaScanner.nextLine();
System.out.println("Se recibe \"" + cadena1 + "\" y \"" + cadena2 + "\".");
System.out.println("Comparacion:\n");
for(int i= 0; i < cadena1.length() || i < cadena2.length(); i++){
System.out.print("¿Caracter "+(i+1)+" igual en ambos?: ");
if(i+1 > cadena2.length() || i+1 > cadena1.length()){
String cadena="1";
if(i+1 > cadena2.length()){cadena="2";}
System.out.println("Cadena "+cadena+" no tiene "+(i+1)+" cáracter.");}
else{ boolean comparacion=true;
if(!cadena1.substring(i, i+1).equals(cadena2.substring(i, i+1))){
comparacion=false;
}
System.out.println(comparacion);
}
}
}
}
Un saludo
-
Simplifica cierta parte en mi código, me parece bien. :)
Gracias por revisar el ejercicio ESOJ.