Nota: este tema se ha desdoblado para mantener un ejercicio por tema.
Respusta de toni_apr al ejercicio CU00669B:
EJERCICIO CU00669B main manipulando array.
Dos clases. La primera con el main
clase EjemploArray
/**
* Detalles de la clase.
* @author (Toni)
* @version (0)
*/
public class EjemploArray {
public static void main (String [] args) {
String [] mesEA = {"enero","febrero","marzo","abril","mayo","junio",
"julio","agosto","septiembre","octubre","noviembre","diciembre"};
String mesSecreto = mesEA[(int)(Math.random() * 12)];
boolean probarOtraVez = true;
String respuesta = "", separacion = "";
Mensaje mensaje = new Mensaje("Propuesta: Adivina el mes que he escogido. Escríbelo (todo en minúsculas).");
do {
for (int i = 0; i < mesEA.length; i++) {
if (i < mesEA.length - 1) { separacion = ","; } else { separacion = ".\n"; }
mensaje.muestra (mesEA[i] + separacion,0);
} // fin del for
respuesta = mensaje.responde ("\tEscribe tu mes:",0);
if ( respuesta.length() == 0) {
mensaje.muestra ("Con una entrada vacía. Salimos corriendo.");
probarOtraVez = false;
} else if (respuesta.equals(mesSecreto)) {
mensaje.muestra ("Has acertado. Me retiro, hasta luego.");
probarOtraVez = false;
} else if (respuesta.equals("?")) { // Caracter espía
mensaje.muestra ("\tLa respuesta es: " + mesSecreto + " Tariro rariro...");
} else {
mensaje.muestra ("Frio, frio. Inténtalo otra vez.");
} // fin del if
} while (probarOtraVez); // fin del while
} // fin del main
} // Fin de la clase EjemploArray
La segunda para entradas de teclado y mensajes
Clase Mensaje
import java.util.Scanner;
/**
* Detalles de la clase. El método presenta mensajes por pantalla... y devuelve entradas de teclado
* @author (Toni)
* @version (0)
*/
public class Mensaje { // Atributos de la clase Mensaje
private String texto;
private int valor;
/**
* Mostrará el texto con salto de línea final.
*/
public Mensaje (String frase) { //Constructor 1 parámetro para objetos de la clase Mensaje. Inicializa atributos
texto = frase;
valor = 1;
muestra (texto, valor);
}
/**
* Valores param:
* 0 = Sin salto de línea.
* 1, u otro valor = Con salto de línea.
*/
public Mensaje (String frase, int param) {
texto = frase;
valor = param;
muestra (texto, valor);
}
// Siguen los setters para los atributos de la clase Mensaje
public void setTexto (String texto) { this.texto = texto; }
public void setValor (int valor) { this.valor = valor; }
// Ahora los getters para los atributos de la clase Mensaje
public String getTexto () { return texto; }
public int getValor () { return valor; }
// Y seguidamente, procedimientos y funciones varios.
/**
* Mostrar el texto con salto de línea (sin segundo parámetro)
*/
public void muestra (String frase) {
muestra (frase, 1);
}// fin de muestra 1 parámetro
/**
* Valores param:
* 0 = Sin salto de línea.
* 1, u otro valor = Con salto de línea.
*/
public void muestra (String frase, int param) {
texto = frase;
valor = param;
if (valor == 0) { System.out.print (texto + " ");
} else { System.out.println (texto); }
}// fin de muestra 2 parámetros
/**
* Sin segundo parámetro el mensaje incluirá salto de línea. Devuelve entrada de teclado
*/
public String responde (String frase) {
return responde (frase, 1);
}// fin de responde 1 parámetro
/**
* Valores param:
* 0 = Sin salto de línea + entrada por teclado.
* 1, u otro valor = Con salto de línea + entrada por teclado.
*/
public String responde (String frase, int param) {
texto = frase;
valor = param;
muestra (texto, valor);
Scanner entradaEscaner = new Scanner(System.in);
return entradaEscaner.nextLine();
}// fin de responde 2 parámetros
} // Fin de la clase Mensaje
Espero vuestros comentarios. Saludos.