/**
* Detalles de la clase.
* Encadenar las tres primeras letras de los dos parámetros introducidos, usando dos métodos distintos.
* @author (Toni)
* @version (0)
*/
public class Encadenador {
// Atributos de la clase Encadenador
private String texto1;
private String texto2;
/**
* Constructor para objetos de la clase Encadenador
*/
public Encadenador() {
// Inicializa atributos
texto1 = "";
texto2 = "";
} // Fin del constructor Encadenador
// Siguen los setters para los atributos de la clase Encadenador
public void setTexto1 ( String valorTexto1 ) { texto1 = valorTexto1; }
public void setTexto2 ( String valorTexto2 ) { texto2 = valorTexto2; }
// Ahora los getters para los atributos de la clase Encadenador
public String getTexto1 () { return texto1; }
public String getTexto2 () { return texto2; }
// Y seguidamente, procedimientos y funciones varios.
// encadena las 2 cadenas cogiendo 3 letras del principio de cada una, o protesta si no puede.
public String encadenaDosCadenas ( String valorTexto1, String valorTexto2 ) {
String cadena = "";
if ( valorTexto1.length() < 3 || valorTexto2.length() <3 ) {
cadena = "Los parámetros no tienen la longitud mínima.";
} else {
cadena = valorTexto1.substring (0,3) + " " + valorTexto2.substring (0,3);
}
return cadena;
} // fin del método
// encadena las dos cadenas aunque no tengan los tres caracteres.
public String encadenaDosCadenasSioSi ( String valorTexto1, String valorTexto2 ) {
// <cadena> guardará el resultado
String cadena = "";
// longitud máxima de caracteres a devolver para cada parámetro
int largoTexto1 = 3;
int largoTexto2 = 3;
// actualización de la longitud disponible para las dos cadenas.
largoTexto1 = actualizaLongitud ( largoTexto1, valorTexto1 );
largoTexto2 = actualizaLongitud ( largoTexto2, valorTexto2 );
// encadenar resultado
cadena = valorTexto1.substring(0,largoTexto1) + " " + valorTexto2.substring(0,largoTexto2);
// devolver resultado
return cadena;
} // fin del método
//
private int actualizaLongitud ( int largoMax, String valorTexto ) {
int largoFinal = largoMax;
int largoActual = valorTexto.length();
if ( largoActual < largoFinal ) {
largoFinal = largoActual;
}
return largoFinal;
}
} // Fin de la clase Encadenador
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?
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?
// encadena las dos cadenas aunque no tengan los tres caracteres.
public String encadenaDosCadenasSioSi ( String valorTexto1, String valorTexto2 ) {
// <cadena> guardará el resultado
String cadena = "";
// longitud máxima de caracteres a devolver para cada parámetro
int largoTexto1 = 3;
int largoTexto2 = 3;
if (valorTexto1.length() <3 ) { largoTexto1 = valorTexto1.length(); } else {largoTexto1 = 3;}
if (valorTexto2.length() <3 ) { largoTexto2 = valorTexto2.length(); } else {largoTexto2 = 3;}
// encadenar resultado
cadena = valorTexto1.substring(0,largoTexto1) + " " + valorTexto2.substring(0,largoTexto2);
// devolver resultado
return cadena;
} // fin del método
Aquí quiero preguntarte. ¿Cómo se gestiona la frontera entre: código sencillo/compacto y código con funciones separadas, independientes (cada una haciendo solo lo suyo)?