Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Chompy129 en 17 de Diciembre 2016, 00:42

Título: Java. Comparar objetos String con equals(). Ejercicio CU00662B
Publicado 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
Código: [Seleccionar]
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)

Título: Re:Java. Comparar objetos String con equals(). Ejercicio CU00662B
Publicado por: ESOJ en 17 de Diciembre 2016, 02:11
Hola.
El ejercicio es correcto.
Otra forma de hacerlo podría ser:
Código: [Seleccionar]
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
Título: Re:Java. Comparar objetos String con equals(). Ejercicio CU00662B
Publicado por: Chompy129 en 17 de Diciembre 2016, 03:56
Simplifica cierta parte en mi código, me parece bien. :)
Gracias por revisar el ejercicio ESOJ.