Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: urdaneta88 en 12 de Marzo 2015, 03:43

Título: EJERCICIO CU00657B Pedir datos en Java por consola (teclado) ejemplo Scanner
Publicado por: urdaneta88 en 12 de Marzo 2015, 03:43
Este ejercicio me tomo un poco mas de tiempo sobre todo para resolver como comparar la primera letra y saber si era igual a "a" pero creo que pude resolver.

Saludos.

Código: [Seleccionar]
import java.util.Scanner; //Importación del código de la clase Scanner desde la biblioteca Java
//Código de nuestra clase principal ejemplo aprenderaprogramar.com
public class TestPrograma1 {
 
    public static void main (String [ ] args) {
        System.out.println ("Empezamos el programa");
        System.out.println ("Por favor introduzca una cadena por teclado:");
        String entradaTeclado = "";
        Scanner entradaEscaner = new Scanner (System.in); //Creación de un objeto Scanner
        entradaTeclado = entradaEscaner.nextLine (); //Invocamos un método sobre un objeto Scanner
       
        String entradaCortada = entradaTeclado.substring(0,1);//cortamos el String ingresado por pantalla y agarramos solo la primera letra
        int primeraLetraA = entradaCortada.compareTo("a");///comparamos esa letra agarrada en el paso anterior con la letra "a" para ver si son iguales, si el numero resultante es 0 quiere decir que son iguales.
       
        if(entradaTeclado.length()<5){ //si la cadana ingresada tiene menos de 5 caracteres va a entrar por este condicional
            System.out.print("La cadena introducida tiene menos de 5 caracteres");
            if(primeraLetraA==0){  ///comprobamos que la orimera letra es "a" si el valor de primeraLetraA es igual a 0
                System.out.print(" y comienza por la letra a");
            }else{
                System.out.print(" y no comienza por la letra a");
            }
        }else if(entradaTeclado.length()>=5 && entradaTeclado.length()<16){// si la cadena es mayor o igual a 5 y menor a 16 va a entrar por este condicional
            System.out.print("La cadena introducida tiene entre 5 y 15 caracteres");
            if(primeraLetraA==0){
                System.out.print(" y comienza por la letra a");
            }else{
                System.out.print(" y no comienza por la letra a");
            }
        }
        else{
            System.out.print("La cadena introducida tiene mas de 15 caracteres");//si la cadena no entra en ninguno de los otros condicionales quiere decir que tiene mas de 15 caracteres
            if(primeraLetraA==0){
                System.out.print(" y comienza por la letra a");
            }else{
                System.out.print(" y no comienza por la letra a");
            }
        }
       
    } //Cierre del main
} //Cierre de la clase

Título: Re:EJERCICIO CU00657B, Pedir datos en Java por consola(teclado).
Publicado por: toni_apr en 12 de Marzo 2015, 23:41
Hola urdaneta

Ejercicio correcto. Bien.

Quiero apuntar pero dos cosas para mejorar el código
Primera
El método compare de la clase String tiene un vecino: compareToIgnoreCase que responderá igual tanto si las letras son mayúsculas o minúsculas.
Ahora tu codigo discrimina entre 'A' y 'a'

Segunda
Tu código tiene muchos if y else if. Estoy seguro que puedes reducirlos.
Un código compacto es siempre más eficiente.

Saludos