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).
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?
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