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: paramonso en 19 de Septiembre 2018, 16:43
-
Hola. Dejo el Ejercicio CU00662B del tutorial de programación básica Java.
El método equals en Java. Diferencia entre igualdad e identidad. Comparar objetos.
Clase EntradaDeTeclado:
import java.util.Scanner; //Importación del código de la clase Scanner desde la biblioteca Java
// Definimos una clase EntradaDeTeclado aprenderaprogramar.com
public class EntradaDeTeclado {
private String entradaTeclado; //Variable de instancia (campo) de la clase
public EntradaDeTeclado () { //Constructor
entradaTeclado="";
pedirEntrada(); //Esto es una llamada a un método interno. Al crear un objeto ejecutamos el método
} //Cierre del constructor
public void pedirEntrada () { //Método de la clase
Scanner entradaEscaner = new Scanner (System.in);
entradaTeclado = entradaEscaner.nextLine ();
} //Cierre del método pedirEntrada
public String getEntrada () { return entradaTeclado; } //Cierre del método getEntrada
public int getLongitud () { //Método de la clase
return entradaTeclado.length();
} //Cierre del método getLongitud
} //Cierre de la clase
Clase ComparacionLetras :
// Nuestra clase de prueba aprenderaprogramar.com
public class ComparacionLetras {
public static void main (String [ ] args) {
System.out.print ("EjercicioCU00662B COMPARACION LETRA A LETRA\n\n");
System.out.print ("Por favor introduzca la 1ª frase :\n");
EntradaDeTeclado frase1 = new EntradaDeTeclado();
System.out.print ("Por favor introduzca la 2ª frase :\n");
EntradaDeTeclado frase2 = new EntradaDeTeclado();
int cadenaMasLarga=0; // Variable para sacar la longitud de la cadena mas larga
// Longitud de las cadenas
int longCad1=frase1.getLongitud();
int longCad2=frase2.getLongitud();
// Sacar la longitud de la cadena mas larga
if (longCad1>longCad2){
cadenaMasLarga=longCad1;
}
else {
cadenaMasLarga=longCad2;
}
// Variables para la comparacion
String compara1=frase1.getEntrada();
String compara2=frase2.getEntrada();
int n; // Variable entera para realizar las comparaciones
for(int i=0;i<=cadenaMasLarga-1;i++){
n=i+1;
if (n<=cadenaMasLarga){
if (n<=longCad1 && n<=longCad2){
System.out.print("¿letra "+(i+1)+" = ?");
if (compara1.substring(i,n).equals(compara2.substring(i,n)))
{
System.out.print(" Verdadero "+compara1.substring(i,n)+" "+compara2.substring(i,n)+"\n");
}
else{
System.out.print(" Falso "+compara1.substring(i,n)+" "+compara2.substring(i,n)+"\n");
}
}
}
if(n>longCad1 ){
System.out.print("La frase 1 no contiene la letra "+(i+1)+" "+compara2.substring(i,n)+"\n");
}
else if( n>longCad2 ){
System.out.print("La frase 2 no contiene la letra "+(i+1)+" "+compara1.substring(i,n)+"\n");
}
}
} //Cierre del main
} //Cierre de la clase
Gracias. Un Saludo. ;)
-
Buenas, el código funciona a la perfección y tiene la originalidad respecto a otras soluciones que se pueden ver en el foro de que va mostrando ambas letras de las dos palabras que se comparan (cuando existen en las dos palabras), así que todo bien ;)
Salu2