Autor Tema: Ejercicio CU00662B. Ejemplo método equals en Java y substring  (Leído 4485 veces)

fedegaray

  • Principiante
  • **
  • Mensajes: 81
    • Ver Perfil
Que manera de sufrir!!!! pero sufrimiento del bueno, jaja, de ese que se sale habiendo capitalizado algo. Este ejercicio me costó bastante, y si bien en consola sale ok, siento que he armado un lío con la sintaxis, que de seguro podría ser más económica. Pero bueno, estoy muy satisfecho de haberlo resuelto sin espiar. Un abrazo!

Código: [Seleccionar]
import java.util.Scanner;

public class ComparadorPalabras {
    public static void main (String [ ] Args) {
        String palabra1 = "";
        String palabra2 = "";
        System.out.println("Escriba una palabra");
        Scanner entrada1 = new Scanner(System.in);
        palabra1 = entrada1.nextLine();
        System.out.println("Escriba otra palabra");
        Scanner entrada2 =new Scanner(System.in);
        palabra2 = entrada2.nextLine();
        int palabraMasCorta = 0;
        int palabraMasLarga = 0;
        String textoCorto = "";
        String igualdad = "";

        int i = 1;
        int j = 0;

        if (palabra1.length() < palabra2.length())
        {palabraMasCorta = palabra1.length();
            palabraMasLarga = palabra2.length();
            textoCorto = "primera";
        }
        else { palabraMasCorta = palabra2.length();
            palabraMasLarga = palabra1.length();
            textoCorto = "segunda";
        }

        while (i <= palabraMasCorta) { 
            if (palabra1.substring(j,i).equals(palabra2.substring(j,i)))  {
                igualdad="sí";} else {
                igualdad="no";}
            System.out.println ("La letra número " + i + " " + igualdad + " es igual en ambas palabras");
            i++;
            j++;
        }

        while (i <= palabraMasLarga) {
           
            System.out.println ("La " + textoCorto + " palabra no tiene letra " + i);
            i++;
            j++;
        }
       
    }   

}
« Última modificación: 25 de Febrero 2015, 08:43 por Alex Rodríguez »

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Re:Ejercicio CU00662B. Ejemplo método equals en Java y substring
« Respuesta #1 en: 25 de Febrero 2015, 21:35 »
Hola fedegaray

Tu clase está muy bien.
Dicen que cuando te cuesta descorchar la botella, el vino te sabe mejor.

Tu creación es efectiva.
Se puede quitar una línea de código sin desvirtuar su estructura.

Las dos líneas siguientes:
        Scanner entrada2 =new Scanner(System.in);
        palabra2 = entrada2.nextLine();
Se pueden sustituir por la siguiente:
        palabra2 = entrada1.nextLine();

Te ahorras la declaración de entrada2. Las entradas de teclado las has guardado en palabra1 y palabra2 y te basta un solo objeto de la clase Scanner

Saludos

fedegaray

  • Principiante
  • **
  • Mensajes: 81
    • Ver Perfil
Re:Ejercicio CU00662B. Ejemplo método equals en Java y substring
« Respuesta #2 en: 25 de Febrero 2015, 21:57 »
Qué buen consejo. Lo voy a tener muy en cuenta. Y esta lección en particular me alegra mucho saber que resultó positiva, ya que me he roto la cabeza buscando la manera de que funcione. un cálido saludo!!

adrianpza

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 6
    • Ver Perfil
Re:Ejercicio CU00662B. Ejemplo método equals en Java y substring
« Respuesta #3 en: 26 de Febrero 2015, 04:41 »
Aqui va una version ligeramente diferente pero que arroja resultados similares,,, estoy copadisimo con el curso aunque creo que lo pille tarde,, espero haya alguien mas acompañandome en mis lecturas... saludos desde argentina!!!!

Código: [Seleccionar]
import java.util.Scanner;
public class Comparacion{
           
   [size=8pt][size=18pt][font=arial][size=8pt] public static void main(String [] args){
        System.out.println("Bienvenidos al comparador de palabras");
        System.out.println("Por favor introduzca dos palabras separadas por un espacio en blanco");
        String vTexto1="";
        String vTexto2="";
        Scanner sc=new Scanner(System.in);
        vTexto1=sc.next(); //aqui next devuelve el valor del primer "token"
        vTexto2=sc.next();//aqui next devuelve el valor del segundo "token"
        int vMayor=Math.max(vTexto1.length(),vTexto2.length());//la palabra mas larga
        int vMenor=Math.min(vTexto1.length(),vTexto2.length());// y la mas corta...
               
        for(int i=0;i<vMenor;i++){
            int numLetra=i+1;//sirve para no hablar de la letra "0" en la salida por pantalla
            if(vTexto1.substring(i,i+1).equals(vTexto2.substring(i,i+1))){
                 System.out.println("Letra "+numLetra+" igual en las dos palabras? True");
            }
            else{System.out.println("Letra "+numLetra+" igual en las dos palabras? False");
            }
        }
        for(int i=vMenor;i<vMayor;i++){
            int numLetra=i+1;
            System.out.println("Letra "+numLetra+" inexistente en siguiente palabra ");
        }
    }
}
:P
« Última modificación: 27 de Febrero 2015, 20:04 por toni_apr »

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Re:Ejercicio CU00662B. Ejemplo método equals en Java y substring
« Respuesta #4 en: 27 de Febrero 2015, 20:07 »
Hola adrianpza

En primer lugar te pongo un enlace que te muestra ¿Cómo insertar código en el foro?
https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0

El curso no tiene fecha de inicio ni fin. Puedes seguirlo a la velocidad que quieras. España devuelve el saludo.

Tu código es operativo al 100%

Una cosa a destacar. Informas al usuario de cómo debe introducir el texto. Así sabe por donde debe ir. Bien.

Otra cosa. Cuando una palabra es más larga que la otra. Tu código no tiene constancia de cual es esa palabra para poder decir:
   La palabra 2 no tiene letra 6.
como se pide en el enunciado.
Tal vez no le has dado importancia. Pero así, podrás decir que tu código controla todo respecto de las dos palabras.

Saludos

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".