Autor Tema: Java ejercicios resueltos con cadenas String y Scanner pedir datos CU00657B  (Leído 22554 veces)

ronal.d87

  • Principiante
  • **
  • Mensajes: 72
    • Ver Perfil
Hola a todos, he aqui el desarrollo del ejercicio planteado

Citar
Crea una clase con un método main que pida una entrada de teclado y usando condicionales, el método length de la clase String y el método substring de la clase String, muestre un mensaje indicando:

a) Si la cadena introducida tiene menos de 5 caracteres, entre 5 y 15 caracteres o más de 15 caracteres.

b) Si la cadena introducida comienza por la letra a.

Ejemplo: se pide la entrada y el usuario introduce “vereda”. Por pantalla se debe mostrar: “La cadena introducida tiene entre 5 y 15 caracteres y no comienza por a”.

Código: [Seleccionar]
package ejemplo;

//importamos el paquete de la clase Scanner
import java.util.Scanner;

public class CalculaLetras {
    //Constructor General
    public CalculaLetras(){
       
    }
   
    public static void main (String [] argumentos){
        int condicion = 0;
        System.out.println("Inicio del programa Calcula Letras");
        System.out.println("Ingresa cadena de caracteres");
        String ingresoCaracteres = "";
        String primera = "a";
        String primerA = "A";       
        Scanner ingresoTeclado = new Scanner(System.in);//Lectura del teclado
        ingresoCaracteres = ingresoTeclado.nextLine();//el objeto ingresoCaracteres recibe los valores
       
        //Condicional 1 si la cadena tiene menos de 5 caracteres
        if(ingresoCaracteres.length()< 5 ){           
            System.out.print("La cadena introducida tiene menos de 5 caracteres");           
            //el programa evalua si el primer caracter inicia con a o A
            if( ingresoCaracteres.substring(0).startsWith(primera)
                    || ingresoCaracteres.substring(0).startsWith(primerA)){
                System.out.println(" y la primera letra es a o es A");
            }           
            //Condicional 2 si la cadena tiene entre 5 y 15 caracteres
        }else if(ingresoCaracteres.length()>=5 && ingresoCaracteres.length() <=15){                       
            System.out.print("La cadena introducida tiene entre 5 y 15 caracteres");
            //el programa evalua si el primer caracter inicia con a o A
            if( ingresoCaracteres.substring(0).startsWith(primera)
                    || ingresoCaracteres.substring(0).startsWith(primerA)){
                System.out.println(" y la primera letra es a o es A");
            }           
            //Condicional 3 si la cadena tiene mas de 15 caracteres           
        }else if(ingresoCaracteres.length()>15){           
            System.out.print("La cadena introducida tiene mas de 15 caracteres");
            //el programa evalua si el primer caracter inicia con a o A
            if( ingresoCaracteres.substring(0).startsWith(primera)
                    || ingresoCaracteres.substring(0).startsWith(primerA)){
                System.out.println(" y la primera letra es a o es A");
            }                       
        }
    }
}

« Última modificación: 18 de Junio 2015, 15:22 por Alex Rodríguez »
Ronald Mosquera Mancilla

RaGa

  • Moderador Global
  • Intermedio
  • *******
  • APR2.COM
  • Mensajes: 234
    • Ver Perfil
Re:EJERCICIO CU00657B RESUELTO
« Respuesta #1 en: 14 de Junio 2015, 16:57 »
Hola Ronal:

Estuve revisando tu código y lo veo Excelente!! Destaco siempre el orden, y esta vez destaco el aprovechamiento y uso de los métodos de la clase String para resolver con elegancia el problema planteado.

Ya que ha sido muy bien resuelto, creo que podríamos darle una vuelta más de rosca y hacer la siguiente observación:

Hay una parte del código que se repite varias veces y es cuando vamos a verificar con qué letra empieza nuestra cadena. Podríamos plantear esa verificación como un nuevo método que es llamado cada vez que lo necesitemos. Podríamos incluso hacer más genérico y modular este método definiéndolo como un método con parámetros.
Fíjate cómo quedaría codificado el programa con esta modificación. Hemos ahorrado líneas de código y desaparecen dos atributos (primera y primeA).

Código: [Seleccionar]
package ejemplo;
//importamos el paquete de la clase Scanner
import java.util.Scanner;

public class CalculaLetras {
    //Constructor General
    public CalculaLetras(){
       
    }
   
    public static void main (String [] argumentos){
        int condicion = 0;
        System.out.println("\fInicio del programa Calcula Letras");
        System.out.println("Ingresa cadena de caracteres");
        String ingresoCaracteres = "";
        Scanner ingresoTeclado = new Scanner(System.in);//Lectura del teclado
        ingresoCaracteres = ingresoTeclado.nextLine();//el objeto ingresoCaracteres recibe los valores
       
        //Condicional 1 si la cadena tiene menos de 5 caracteres
        if(ingresoCaracteres.length()< 5 ){           
            System.out.print("La cadena introducida tiene menos de 5 caracteres");           
            //el programa evalua si el primer caracter inicia con a o A
            TesterLetraInicial(ingresoCaracteres,"a","A");
           
            //Condicional 2 si la cadena tiene entre 5 y 15 caracteres
        }else if(ingresoCaracteres.length()>=5 && ingresoCaracteres.length() <=15){                       
            System.out.print("La cadena introducida tiene entre 5 y 15 caracteres");
            //el programa evalua si el primer caracter inicia con a o A
            TesterLetraInicial(ingresoCaracteres,"a","A");   
           
            //Condicional 3 si la cadena tiene mas de 15 caracteres           
        }else if(ingresoCaracteres.length()>15){           
            System.out.print("La cadena introducida tiene mas de 15 caracteres");
            //el programa evalua si el primer caracter inicia con a o A
            TesterLetraInicial(ingresoCaracteres,"a","A");
           
        }
   
    }
   
    public static void TesterLetraInicial(String palabra, String letraInicial1, String letraInicial2){
        if(palabra.substring(0).startsWith(letraInicial1)){System.out.println(" y la primera letra es \"a\"");}
        else if(palabra.substring(0).startsWith(letraInicial2)){System.out.println(" y la primera letra es a \"A\"");}
    }
   
}

Revísalo y ante cualquier duda aquí estamos para ayudar.

rovala

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 2
    • Ver Perfil
Dónde está mi respuesta de ayer?

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola rovala, en https://www.aprenderaprogramar.com/foros/index.php?topic=4603.0

Por favor no escribas en hilos ya abiertos.

Cuando quieras plantear una consulta a un ejercicio abre un nuevo hilo.

Lee esto por favor: https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0

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