Autor Tema: Ejercicio CU00662B#. Ejemplo método equals y substring de la clase String Java  (Leído 6322 veces)

RaGa

  • Moderador Global
  • Intermedio
  • *******
  • APR2.COM
  • Mensajes: 234
    • Ver Perfil
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
« Última modificación: 10 de Abril 2015, 09:55 por Mario R. Rancel »

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
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.

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
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.

 

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".