Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Erik_Escriche en 04 de Noviembre 2016, 14:03
-
Buenos días.
Dejo aquí el código que he escrito para el método combinadoSiempre y la respuesta a las preguntas. Muchas gracias de antemano por las correcciones y comentarios.
//Método que combina las cadenas con cualesquiera caracteres disponibles.
public String combinadoSiempre (String valor_texto1, String valor_texto2) {
String combinacionSiempre = "";
if (valor_texto1.length()>=3&&valor_texto2.length()>=3) {
combinacionSiempre = valor_texto1.substring (0,3) + " " + valor_texto2.substring(0,3);
} else if (valor_texto1.length()<3&&valor_texto2.length()>=3) {
combinacionSiempre = valor_texto1.substring (0) + " " + valor_texto2.substring (0,3);
} else if (valor_texto1.length()>=3&&valor_texto2.length()<3) {
combinacionSiempre = valor_texto1.substring (0,3) + " " + valor_texto2.substring(0);
} else {
combinacionSiempre = valor_texto1.substring (0) + " " + valor_texto2.substring (0);
}
System.out.println ("El resultado de la combinación es " + combinacionSiempre + ".");
return combinacionSiempre;
}
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? Sí, me parece lógico, ya que hemos pedido en el código que aparezca un espacio en blanco entre las dos cadenas.
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? No, los atributos no tienen utilidad en el código que hemos escrito. No se usan en los métodos que tenemos definidos. Se pueden omitir y el programa funciona igual.
-
Buenos días.
En realidad el ejercicio no pedía modificar el código del ejemplo.Solo pedía crear un objeto tipo Combinador y realizar una serie de pruebas.Yo habría hecho esto:
public class TestCombinador
{
public static void main (String[] args)
{
Combinador objetoCombinador=new Combinador();
System.out.print("Texto1=Elefante \nTexto2=Nutria\n");
System.out.print("Resultado método Combinacion = "+objetoCombinador.Combinacion("Elefante","Nutria"));
System.out.print("\nResultado método CombinadoSiempre = "+objetoCombinador.CombinadoSiempre("Elefante","Nutria"));
System.out.print("\n\nTexto1=Elefante \nTexto2=Do\n");
System.out.print("Resultado método Combinacion = "+objetoCombinador.Combinacion("Elefante","Do"));
System.out.print("\nResultado método CombinadoSiempre = "+objetoCombinador.CombinadoSiempre("Elefante","Do"));
System.out.print("\n\nTexto1=Da \nTexto2=Do\n");
System.out.print("Resultado método Combinacion = "+objetoCombinador.Combinacion("Da","Do"));
System.out.print("\nResultado método CombinadoSiempre = "+objetoCombinador.CombinadoSiempre("Da","Do"));
System.out.print("\n\nTexto1="+'"'+'"'+" \nTexto2="+'"'+'"');
System.out.print("\nResultado método Combinacion = "+objetoCombinador.Combinacion("",""));
System.out.print("\nResultado método CombinadoSiempre = "+objetoCombinador.CombinadoSiempre("",""));
}
}
En cuanto a las respuestas,están las dos bien.
Un saludo
-
Hola ESOJ.
Muchas gracias por contestar a mi mensaje. No entiendo el código que me has propuesto. No sé si ha habido un malentendido con la entrega del curso y lo que me has escrito es de alguna más avanzada o si simplemente no estoy comprendiendo, jeje.
El ejercicio al que he respondido es este:
Método length de la clase String del API de Java. Ejemplo de uso de métodos para evitar errores. (CU00650B)
"Valiéndonos de este método, intenta escribir tu propio código para hacer lo siguiente:
(...) 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".
Si me has respondido en base a esto, disculpa. Será que no me entero mucho todavía.
-
No es necesario modificar ni crear nuevo método si ya están todo creado solo necesita crear el objeto para pesarle valor y probar los método para responder a la pregunta planteado.
Ejemplo.
Este seria el objeto.
Combinador combina = new Combinador();A tener creado el objeto le llama al método y le pasa el valor.
System.out.println("La cadena combianda es: "+ combina.Combinacion("hola", "dios"));Y mostrar el resultado y de ahí responde la pregunta.
-
De acuerdo. Muchas gracias por tu respuesta, DRANXZ88.
¡Un saludo!
-
Buenos días.
Creo que ya se donde estaba la confusión.Al enunciado que tu dabas solución es al ejemplo que aparece en la entrega.Ese ejercicio ya viene resuelto en la misma entrega.
Yo te puse la solución del ejercicio propuesto al final de la entrega.
public class TestCombinador
{
public static void main (String[] args)
{
Combinador objetoCombinador=new Combinador(); //Aquí creo el objeto de tipo Combinador
/*Prueba con dos cadenas de más de 3 caracteres */
System.out.print("Texto1=Elefante \nTexto2=Nutria\n");
System.out.print("Resultado método Combinacion = "+objetoCombinador.Combinacion("Elefante","Nutria")); //método Combinacion
System.out.print("\nResultado método CombinadoSiempre = "+objetoCombinador.CombinadoSiempre("Elefante","Nutria")); //método CombinadoSiempre
/*Prueba con una cadena de más de 3 caracteres y otra de menos de 3 caracteres */
System.out.print("\n\nTexto1=Elefante \nTexto2=Do\n");
System.out.print("Resultado método Combinacion = "+objetoCombinador.Combinacion("Elefante","Do")); //método Combinacion
System.out.print("\nResultado método CombinadoSiempre = "+objetoCombinador.CombinadoSiempre("Elefante","Do")); //método CombinadoSiempre
/*Prueba con dos cadenas de menos de 3 caracteres */
System.out.print("\n\nTexto1=Da \nTexto2=Do\n");
System.out.print("Resultado método Combinacion = "+objetoCombinador.Combinacion("Da","Do"));
System.out.print("\nResultado método CombinadoSiempre = "+objetoCombinador.CombinadoSiempre("Da","Do"));
/*Prueba con dos cadenas vacías */
System.out.print("\n\nTexto1="+'"'+'"'+" \nTexto2="+'"'+'"');
System.out.print("\nResultado método Combinacion = "+objetoCombinador.Combinacion("",""));
System.out.print("\nResultado método CombinadoSiempre = "+objetoCombinador.CombinadoSiempre("",""));
}
}
Un saludo
-
Ah, de acuerdo. ¡Muchas gracias!
Sí, sé que estaba resuelto en la entrega, pero como primero había escrito mi código sin mirar el propuesto y resultó ser bastante diferente, quería verificar preguntando en el foro si mi opción era correcta o si era preferible no crear el método de esta manera por algún convenio de programación.
-
Buenos días.
Tu método también sería correcto.
Lo único que quitaría es la línea
System.out.println ("El resultado de la combinación es " + combinacionSiempre + ".");
Tu método ya devuelve el valor combinacionSiempre.
Un saludo.
-
Es verdad. No me había dado cuenta. Muchas gracias ;D