Autor Tema: Java. Combinar cadenas, uso de length() de la clase String ejemplo CU00650B  (Leído 3798 veces)

Bcks7

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 48
    • Ver Perfil
Hola de nuevo, dejo mis respuestas al ejercicio CU00650B del manual de programación Java para principiantes y ambos códigos, con atributos y sin atributos, cualquier recomendación se agradece de antemano.

Fijate 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?Sí, al dejar dos cadenas vacías devuelve un espacio, ocupa solo un lugar en lugar de dos.

En la clase tenemos definidos dos atributos o campos. Tienen utilidad conocida a la vista del codigo de la clase? Se usan en los métodos que tenemos definidos? No, no tienen utilidad y tampoco se usan, pueden ser removidos ambos atributos y el código funciona sin que haya cambios.

Código con atributos
Código: [Seleccionar]
//Definicion de una clase de ejemplo con uso del metodo length sobre objetos tipo String
//Combina las tres primeras letras de dos textos introducidos por el usuario en una sola cadena separada por un espacio
public class Combinador1{
    private String texto1;
    private String texto2;
   
    public Combinador1(){
        texto1 = "";   
        texto2 = "";
    }
   
    //Metodo que combina las tres primeras letras de cada cadena
    String Combinacion(String valor_texto1, String valor_texto2){
        if(valor_texto1.length()>=3 && valor_texto2.length()>=3){//Comprobacion
            String combinacion = valor_texto1.substring(0,3)+ " " + valor_texto2.substring(0,3);
            return combinacion;
        }else{return "No aporta cadenas validas";}
    }
   
    //Metodo que combina las cadenas aunque contengan menos de 3 caracteres (nuevo metodo)
    String CombinadoSiempre (String valor_texto1, String valor_texto2){
        int longitud_texto1 = 3;//Si podemos extraeremos tres caracteres
        int longitud_texto2 = 3;
        String CombinadoSiempre = "";//Cadena vacia variable local
        if(valor_texto1.length()<3){
            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;
    }
}

Codigo sin atributos
Código: [Seleccionar]
//Definicion de una clase de ejemplo con uso del metodo length sobre objetos tipo String
//Combina las tres primeras letras de dos textos introducidos por el usuario en una sola cadena separada por un espacio
public class Combinador1{
   
    public Combinador1(){
    }
   
    //Metodo que combina las tres primeras letras de cada cadena
    String Combinacion(String valor_texto1, String valor_texto2){
        if(valor_texto1.length()>=3 && valor_texto2.length()>=3){//Comprobacion
            String combinacion = valor_texto1.substring(0,3)+ " " + valor_texto2.substring(0,3);
            return combinacion;
        }else{return "No aporta cadenas validas";}
    }
   
    //Metodo que combina las cadenas aunque contengan menos de 3 caracteres (nuevo metodo)
    String CombinadoSiempre (String valor_texto1, String valor_texto2){
        int longitud_texto1 = 3;//Si podemos extraeremos tres caracteres
        int longitud_texto2 = 3;
        String CombinadoSiempre = "";//Cadena vacia variable local
        if(valor_texto1.length()<3){
            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;
    }
}
« Última modificación: 01 de Octubre 2016, 18:35 por Alex Rodríguez »

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:CU00650B Usar metodos para evitar errores
« Respuesta #1 en: 29 de Septiembre 2016, 16:21 »
Hola Bcks7.

En la primera pregunta, sí, si es lógico que devuelva un espacio porque en esta línea:

Código: [Seleccionar]
CombinadoSiempre = valor_texto1.substring (0,longitud_texto1)+" "+ valor_texto2.substring (0, longitud_texto2);
return CombinadoSiempre;

decimos que se imprima un espacio entre ambas cadenas.

cadena vacía + un espacio + cadena vacía = un espacio

Lo demás bien.

Saludos.  ;D

 

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