Autor Tema: Curso Java desde cero. Método substring clase String Ejercicio resuelto CU00649B  (Leído 2854 veces)

juankipanki

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 2
    • Ver Perfil
Hola a todos. Mi propuesta de solución para el ejercicio CU00649B del tutorial de programación Java con ejercicios resueltos. Este es el primer ejercicio que posteo aunque llevo tiempo siguiendo el curso. Gracias por vuestras indicaciones.


Código: [Seleccionar]
/**
 * Propuesta de solución al ejercicio CU00649B.
 *
 * @author juankipanki 
 * @version 1.0
 */


//Clase
public class PruebaString
{
       
    public PruebaString() {
        //Constructor vacío
    }

   
 //   El metodo getMezclaTextos devuelve en una sola cadena ciertas letras de 3 cadenas dadas.
       
    public String getMezclaTextos(String cadena1, String cadena2, String cadena3)
    {
       String cadenaAuxiliar =""; //Variable auxiliar
       
       cadenaAuxiliar = cadena1.substring(0,2)   + " " 
                               + cadena2.substring(0,4)   + "-"
                               + cadena3.substring(0,6);

       return cadenaAuxiliar;
    }
   
}


Tengo una pequeña duda: En el método utilizo una variable cadenaAuxiliar. Me pregunto si me la podría haber ahorrado poniendo el resultado directamente con la sentencia return de la forma que pongo abajo o si es más acertado crear una variable más. Muchas gracias.


Código: [Seleccionar]

public String getMezclaTextos(String cadena1, String cadena2, String cadena3) {
         
               return  cadena1.substring(0,2)
                    +" "  + cadena2.substring(0,4)
                    + "-" + cadena3.substring(0,6);
    }

« Última modificación: 06 de Septiembre 2020, 19:46 por Alex Rodríguez »

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 988
    • Ver Perfil
Hola Juanki.

Sí, te puedes ahorrar esa variable auxiliar sin problemas. De hecho, cuando uno va a aprendiendo y avanzando en programación, poco a poco va descubriendo que hay muchas cosas que nos podemos "ahorrar" y las instrucciones en el código se reducen drásticamente.

Sin embargo, este "ahorro" a veces provoca ( y no es el caso de tu ejercicio) que no sea evidente lo que hace dicho código.
Es decir, a veces querremos que el código tenga algunas instrucciones de más, aunque sean redundantes, porque al leerlo a simple vista queda más evidente lo que hacen esas instrucciones.
Escoger cuando ser redundante y cuando ser ahorrativo, ya depende de cada uno y de las necesidades del momento.
Al compilador de Java le va a dar igual.

Por ejemplo, imagina que nos piden un método que recibe un valor int con una edad, y el método ha de retornar true si es mayor de edad (18 años o mayor) y false si es menor.

Una forma típica de escribir este método, y que queda muy legible y muy claro lo que hace, sería esta:

Código: [Seleccionar]
public boolean esMayorEdad(int edad) {
   
    if (edad >= 18)
        return true;
    else
        return false;
}

Esto en realidad, se puede resumir así:

Código: [Seleccionar]
public boolean esMayorEdad(int edad) {
   
    return edad >= 18;

}

La primera forma es más redundante, pero más fácil de entender el cométido del código. Puede resultar más didáctico.

La segunda forma es más ahorrativa, incluso más eficiente al reducir instrucciones ( y ahorrar quizás algunos nanosegundos jeje ), pero a ojos de alguien que esté aprendiendo a programar, puede resultar confuso.

Escoger una forma u otra, dependerá de si vamos a compartir ese código con alguien, y según con quien lo compartimos.

Volviendo al caso de tu ejercicio, incluso omitiendo el uso de una variable auxiliar queda bastante evidente lo que está haciendo el código, así que puedes ahorrartela sin ningún problema.
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

juankipanki

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 2
    • Ver Perfil
Muchísimas gracias por tu respuesta. Siento no haberla podido leer antes, pero estoy un poco atareado con cosas personales y no he tenido tiempo. Gracias de nuevo.

 

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