Autor Tema: Ejercicio CU00650B uso de length() para evitar errores en Java  (Leído 3357 veces)

jaivcaba

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 42
    • Ver Perfil
Aquí el código... de antemano gracias por comentar



Código: [Seleccionar]
public class CadenasTexto{
       
  public CadenasTexto(){}
   
  String combinacionA(String valor_texto1, String valor_texto2){
      if (valor_texto1.length() >=3 && valor_texto2.length() >=3){
          String combinacionA = valor_texto1.substring (0, 3) + " " + valor_texto2.substring (0 ,3);
            return combinacionA;
        } else { return "No aporta cadenas válidas"; }
    }
 
  String combinacionB (String valor_texto1, String valor_texto2){
      int longitud_texto2 = 3;
      String combinacionB = "";
      if (valor_texto1.length() >=3 && valor_texto2.length() <3) {
          longitud_texto2 = valor_texto2.length();
          combinacionB = valor_texto1.substring (0,3) + " " + valor_texto2.substring(0,longitud_texto2);
          return combinacionB;
        }else { return "No aporta cadenas válidas"; }
    }
 
  String combinacionC (String valor_texto1,String valor_texto2){
        if (valor_texto1.length() <3 && valor_texto2.length() <3){
          String combinacionC = valor_texto1.substring(0,2) + " " + valor_texto2.substring(0,2);
          return combinacionC;
        }else{return "No aporta cadenas valida";}     
    }
}


Fíjate en el resultado que ofrece el método CombinadoSiempre cuando se le pasan como parámetros dos cadenas vacías. ¿Te parece lógico el resultado?

               
Citar
Si me parece lógico ya que al enviar cadenas vacías el método queda 
valor_texto1.substring (0,0)+" "+ valor_texto2.substring (0,0), por lo tanto lo único que devuelve el método es "". 
   

En la clase tenemos definidos dos atributos o campos. ¿Tienen utilidad conocida a la vista del código de la clase? ¿Se usan en los métodos que tenemos definidos?

               
Citar
Creo que los atributos
    private String texto1;
    private String texto2;
    public Combinador () { texto1 = ""; texto2 = ""; }
                no tienen gran utilidad  dentro del código y no se usan dentro del código ya que este este utiliza los parámetros String valor_texto1,String valor_texto2 para resolver los métodos.       


   
« Última modificación: 25 de Noviembre 2014, 08:45 por Alex Rodríguez »

LPM

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 35
    • Ver Perfil
Re:Ejercicio CU00650B uso de length() para evitar errores.
« Respuesta #1 en: 19 de Noviembre 2014, 21:11 »
hola jaivcaba

Faltó un método que combine siempre

De paso, para compartir ideas, cito esto y comento luego

Código: [Seleccionar]
Fíjate en el resultado que ofrece el método CombinadoSiempre cuando se le pasan como parámetros dos cadenas vacías. ¿Te parece lógico el resultado?

               
Citar

    Si me parece lógico ya que al enviar cadenas vacías el método queda
    valor_texto1.substring (0,0)+" "+ valor_texto2.substring (0,0), por lo tanto lo único que devuelve el método es "". 

   

También le veo lógica, pero no le veo sentido que devuelva nada xd
para hacer algo intuitivo al programa, partiendo del ejemplo en el curso

Código: [Seleccionar]
String CombinadoSiempre (String valor_texto1, String valor_texto2) {

        int longitud_texto1 = 3;  //Si podemos extraeremos tres caracteres

        int longitud_texto2 = 3;

        String CombinadoSiempre = ""; //Cadena vacía, variable local

        if (valor_texto1.length() < 3) {          //Si hay menos de 3 caracteres extraemos los que haya

            longitud_texto1 = valor_texto1.length();

        }

        if (valor_texto2.length() < 3) { longitud_texto2 = valor_texto2.length(); }

CombinadoSiempre = valor_texto1.substring (0,longitud_texto1)+" "+ valor_texto2.substring (0, longitud_texto2);

return CombinadoSiempre;

cambiaria la ultima parte a

Código: [Seleccionar]
if (valor_texto1.equals("")&&valor_texto2.equals("")){
            CombinadoSiempre="No hay nada para combinar";
        }else{
            CombinadoSiempre = valor_texto1.substring (0,longitud_texto1)+" "+ valor_texto2.substring (0, longitud_texto2);
        }
return CombinadoSiempre;

cosa de que al no escribir nada de nada, avise

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Re:Ejercicio CU00650B uso de length() para evitar errores.
« Respuesta #2 en: 24 de Noviembre 2014, 20:10 »
Hola jaivcaba
Comento las respuestas a esta entrega:

El método CombinadoSiempre al que se le pasan dos cadenas vacías como parámetros, devuelve un espacio en blanco " ", no una cadena vacía ""
Código: [Seleccionar]
CombinadoSiempre = valor_texto1.substring (0,longitud_texto1)+" "+ valor_texto2.substring (0, longitud_texto2);es el espacio que unía, o separaba las dos cadenas.
Tal como dice LPM estaría bien que para ese caso el método devolviera un texto explicativo distinto porque el espacio en blanco es 'invisible' y no se sabe si el programa no da respuesta, o no sabe darla.

En cuanto a los atributos texto1 y texto2, efectivamente no son necesarios pues no se utilizan en ningún lugar del código. Bien.

En cuanto a tu clase CadenasTexto
Esta bien como práctica si querías hacer una variación sobre la clase Combinador.

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