El enunciado del ejemplo pedía;
Valiéndonos de este método, intenta escribir tu propio código para hacer lo siguiente:
a) Reescribir la clase Combinador que usamos anteriormente de forma que el método combinacion devuelva “No aporta cadenas válidas” si se le pasa como parámetro alguna cadena que contenga menos de tres caracteres.
b) Escribir un nuevo método de la clase, al que podemos denominar combinadoSiempre que en caso de que se pasen cadenas con menos de tres caracteres, las combine de todas formas en base a los caracteres disponibles, sea el número que sea.
Donde dice en el ejemplo b las combine de todas formas, he entendido que haga uniones de dos caracteres con todas las opciones que sean posibles, y lo hice adaptado a los caracteres que fueran. Ejemplo si pasas "abc" "def"... crea "ad","ae",af","bd"....
Ejercicio para evaluación
public class CombinaCadenas{
public CombinaCadenas(){
//vacío sin atributos de clase
}
//Método para combinar palabras pasadas por parámetro String que solo tengan tamaño mayor a 3 letras controlando no validas sino.
public String combinadorCadenas(String palabra1, String palabra2, String palabra3){
//Atributos para calcular tamaño de las palabras pasadas
int longitud1 = palabra1.length();
int longitud2 = palabra2.length();
int longitud3 = palabra3.length();
if(longitud1 > 2 && longitud2 > 2 && longitud3 > 2){
return palabra1.substring(0,3) + " " + palabra2.substring(0,3) + "-" + palabra3.substring(0,3);
}else {return "No aporta cadenas válidas";}
}
//Método para combinar palabras sea cual sea el tamaño de estas
public String combinaSiempre(String palabra1, String palabra2, String palabra3){
// Atributos de longitud de las palabras
int longitud1 = palabra1.length();
int longitud2 = palabra2.length();
int longitud3 = palabra3.length();
//Atributo cadena que retornaremos en el metodo
String cadena="";
if (longitud1<3){
cadena=cadena + palabra1.substring(0,longitud1);} else{
cadena=cadena + palabra1.substring(0,3);}
if (longitud2<3){
cadena=cadena + " " + palabra2.substring(0,longitud2);} else{
cadena=cadena + " " + palabra2.substring(0,3);}
if (longitud3<3){
cadena=cadena+ " " + palabra3.substring(0,longitud3);} else{
cadena=cadena+ " " + palabra3.substring(0,3);}
return cadena;
}
//Método para combinar las palabras entre sí en todas las opciones posibles de dos caracteres (me faltaria repetir el bucle empezando por la segunda introducida)
public String combinaLetras(String palabra1, String palabra2){
//String resultante para return
String cadena="";
//Atributos de metodo para calcular tamaño de palabras
int longitud1 = palabra1.length();
int longitud2 = palabra2.length();
if (longitud1<3 && longitud2<3){ //Combinador de palabras con menos de dos letras, aunque sirve para cualquier longitud de tamaño
for(int x=0;x<longitud1;x++){
for(int y=0;y<longitud2;y++){
cadena=cadena + palabra1.substring(x,x+1) + palabra2.substring(y,y+1) + " ";
}
}
for(int x=0;x<longitud1;x++){
for(int y=0;y<longitud2;y++){
cadena=cadena + palabra2.substring(y,y+1) + palabra1.substring(x,x+1) + " ";
}
}
}
return cadena;
}
}