Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: RaGa en 08 de Marzo 2015, 01:13

Título: Ejercicio CU00662B#. Ejemplo método equals y substring de la clase String Java
Publicado por: RaGa en 08 de Marzo 2015, 01:13
Buenas tardes.

Este es mi primera participación activa en el foro.

Vengo leyendo todas las Entregas y haciendo los Ejercicios propuestos.

Gracias al foro he podido ir comparando (y aprendiendo) con los programas que se comparten; lo mismo con las observaciones que se hacen sobre ellos.

Este es mi versión para el Ejercicio de la Entrega Nº62 (CU00662B).

Código: [Seleccionar]

public class CU00662B{ // Definición de clase
    //Declaracion de campos de instancia vacía

    public static void main (String[] args){ // función main
        System.out.print("Ingrese Primera Palabra :");
        String palabra1 = Teclado.leer();
        System.out.print("Ingrese Segunda Palabra :");
        String palabra2 = Teclado.leer();
        System.out.println("");
       
        int limiteSuperior;
        int limiteInferior;
        int palabraCorta;
       
        if(palabra1.length() < palabra2.length()){
            limiteInferior = palabra1.length();
            palabraCorta = 1;
            limiteSuperior = palabra2.length();}
            else
            {limiteInferior = palabra2.length();
             palabraCorta = 2;
             limiteSuperior = palabra1.length();}
           
        for (int i=0;i<limiteSuperior;i++){
           
            if (i<limiteInferior){
                System.out.print("¿Letra "+(i+1)+" igual en las dos palabras? ");
                System.out.print(palabra1.substring(i,i+1).equals(palabra2.substring(i,i+1))+"\n");
            }
            else{
                System.out.print("La palabra "+palabraCorta+" no tiene letra "+(i+1)+"\n");
            }
           
        } // fin bucle for
                       
    } // fin main
   
} // fin clase

El método que sirve para ingresar los datos por teclado está en otro clase.

Mi intención además de intentar "pensar en POO" persigue el objetivo de la eficiencia.

Creería que de esta manera, es decir que el objeto Scanner sea local de un método, ahorra recursos ya que una vez que devuelve el String deja de existir. No sucedería lo mismo si la instanciación del objeto Scanner se hiciera dentro del main.

¿Son correctas estas apreciaciones?

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

public class Teclado{
    //Declaracion de campos de instancia de la clase
    public Teclado(){
    }
   
     static String leer(){
        Scanner scannerTeclado = new Scanner (System.in);
        String valorTeclado = scannerTeclado.nextLine();
        return valorTeclado;
    }
   
       
} // Fin de la clase
Título: Re:Ejercicio CU00662B. Ejemplo método equals y substring de la clase String Java
Publicado por: toni_apr en 08 de Marzo 2015, 22:42
Hola RaGa

Tu ejercicio está más que correcto. Enhorabuena.

Tus mensajes por consola aportan la información necesaria para entender los pasos del programa.

Y tienes razón, ahorras recursos al colocar en clase aparte el código para escanear el teclado. En este caso, después de usar el método leer(), la clase ha terminado su función y devuelve la memoria al sistema. OK

Saludos y adelante.
Título: Re:Ejercicio CU00662B. Ejemplo método equals y substring de la clase String Java
Publicado por: Alex Rodríguez en 09 de Marzo 2015, 08:54
Hola, poco que añadir: únicamente comentar que el nombre de la clase public class Teclado { no encaja bien dentro de la convención para nombrar clases y métodos en programación orientada a objetos. El nombre de una clase debe indicar lo que es (lo que representa) o lo que hace. Esta clase no representa un teclado, por tanto sería mejor nombre algo como GestionadorEntradasTeclado. Así podríamos decir "he creado un objeto Gestionador de entradas de teclado" en lugar de "he creado un objeto Teclado".

Saludos.