Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: jupertivo en 25 de Marzo 2015, 21:32

Título: CU00657B Ejemplo pedir datos por consola en Java con Scanner y analizar entrada
Publicado por: jupertivo en 25 de Marzo 2015, 21:32
Os adjunto el código del ejercicio propuesto. A mi me funciona. Lo que pregunto es si la forma elegida de resolverlo es la más adecuada, o a estas alturas del curso tendría que haberlo hecho de otra forma más eficiente o adecuada.

Gracias por todo.

Código: [Seleccionar]
public class TestPrograma2 {
    public static void main (String [ ] args) {
        Scanner entradaEscaner;
        String entradaTeclado = "";
        int longitudTexto = 0;
        String primeraLetra = "";
               
        System.out.println ("");
        System.out.println ("Empezamos el programa");
        System.out.println ("Por favor introduzca una cadena por teclado:");
        entradaEscaner = new Scanner (System.in); //Creación de un objeto Scanner
        entradaTeclado = entradaEscaner.nextLine (); //Invocamos un método sobre un objeto Scanner
        System.out.println ("");
        System.out.println ("Entrada recibida por teclado es: \"" + entradaTeclado + "\"");
       
        longitudTexto = entradaTeclado.length();
        primeraLetra = entradaTeclado.substring (0,1);
       
        switch (primeraLetra) {
            case "a":
                if (longitudTexto < 5) {
                    System.out.println ("La cadena introducida tiene menos de 5 caracteres y empieza por la letra 'a'.");}
                else if (longitudTexto >= 5 && longitudTexto <= 15) {
                    System.out.println ("La cadena introducida tiene entre 5 y 15 caracteres y empieza por la letra 'a'.");}
                else {
                    System.out.println ("La cadena introducida tiene más de 15 caracteres y empieza por la letra 'a'.");}
                break;
            default:
                if (longitudTexto < 5) {
                    System.out.println ("La cadena introducida tiene menos de 5 caracteres y no empieza por la letra 'a'.");}
                else if (longitudTexto >= 5 && longitudTexto <= 15) {
                    System.out.println ("La cadena introducida tiene entre 5 y 15 caracteres y no empieza por la letra 'a'.");}
                else {
                    System.out.println ("La cadena introducida tiene más de 15 caracteres y no empieza por la letra 'a'.");}
                break;
        }
     } //Cierre del main
} //Cierre de la clase
Título: Re:CU00657B. Resolución ejercicio
Publicado por: Príncipe_Azul en 25 de Marzo 2015, 23:58
Hola, una pequeña mejora es en vez de usar esto:

Código: [Seleccionar]
        System.out.println ("");
        System.out.println ("Empezamos el programa");

Es mejor usar esto:

Código: [Seleccionar]
        System.out.println ("\nEmpezamos el programa");
De esta manera en vez de usar dos instrucciones, usas una sola.

Saludos!!
Título: Re:CU00657B Ejemplo pedir datos por consola en Java con Scanner y analizar entrada
Publicado por: Mastermind en 26 de Marzo 2015, 08:20
Hola jupertivo hay una cosa que podrías mejorar y es no repetir código. Al hacer el switch compruebas si la letra inicial es a y pones un código y si la letra no es a repites ese código. Repetir código no es bueno, deberías o bien crear un método de forma que no repitas el código sino simplemente llamar al método, o bien hacerlo de una forma tal que no se repita el código por ejemplo como lo hacen en https://www.aprenderaprogramar.com/foros/index.php?topic=1275.msg6951#msg6951

Saludos  :D
Título: Re:CU00657B Ejemplo pedir datos por consola en Java con Scanner y analizar entrada
Publicado por: jupertivo en 26 de Marzo 2015, 20:30
Hola. Gracias por vuestras sugerencias. Tomo nota y, hasta la próxima. :)