Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: jogonzalezmor en 19 de Julio 2014, 01:03

Título: Entrega ejercicio CU00657B substring y length java
Publicado por: jogonzalezmor en 19 de Julio 2014, 01:03
Envío el código del ejercicio CU00657B  :)
Reutilicé el código del ejemplo para hacerlo, espero que esté bien. Al menos, al probarlo, me envía las respuestas que pide el ejercicio.

Código: [Seleccionar]
import java.util.Scanner; //Importación del código de la clase Scanner desde la biblioteca Java
public class Cadenas
{

    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
        /*Inicio del if 1, comprobando si la palabra comienza por la letra a*/
        if(entradaTeclado.substring(0,1).equals("a")){
            /*Inicio del if 2, donde verificamos si la palabra tiene menos de 5 letras, entre 5 y 15, o más de 15*/
            if(entradaTeclado.length()  < 5){
                System.out.println ("La cadena introducida tiene menos de 5 caracteres y comienza por la letra a");
            }else if(entradaTeclado.length() >= 5 && entradaTeclado.length() <= 15 ){
                System.out.println ("La cadena introducida tiene entre 5 y 15 caracteres y comienza por la letra a");
            }else{
                System.out.println ("La cadena introducida tiene más 15 caracteres y comienza por la letra a");
            }//Fin del if 2
        }else{
            /*Inicio del if 3*/
            if(entradaTeclado.length() < 5){
                System.out.println ("La cadena introducida tiene menos de 5 caracteres y no comienza por la letra a");
            }else if(entradaTeclado.length() >= 5 && entradaTeclado.length() <= 15 ){
                System.out.println ("La cadena introducida tiene entre 5 y 15 caracteres y no comienza por la letra a");
            }else{
                System.out.println ("La cadena introducida tiene más 15 caracteres y no comienza por la letra a");
            }//fin del if 3
        }//Fin del if 1

    }//Fin del main
}// Fin de la clase
Título: Re:Entrega ejercicio CU00657B
Publicado por: Ogramar en 19 de Julio 2014, 15:46
Hola! El código está bien, aunque contiene un defecto: duplicas el código de comprobación de la longitud de la cadena. Duplicar código se considera una mala práctica de programación, nunca se debe duplicar (excepto casos excepcionales) ¿Cómo se mejoraría este código? Por un lado comprobar la longitud y crear un fragmento del mensaje de respuesta, por otro lado comprobar si comienza por a y crear el otro fragmento del mensaje de respuesta. Finalmente unir los dos fragmentos y mostrar el resultado final. De esta manera mejorarías el diseño evitando la duplicación. Saludos!