import java.util.*;
public class AdivinarMesSecreto
{
public AdivinarMesSecreto()
{
}
public static void main(String []args)
{
String [] listaDeMeses = {"enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"};
String mesSecreto = listaDeMeses[(int)(Math.random() * 12)];
System.out.println("\f\nAdivina el mes secreto, por favor escribe el nombre de un mes...");
Scanner escaner = new Scanner(System.in);
String entrada;
entrada = "";
String pista = "No disponible.";
String detalles = "No disponible.";
boolean resuelto = false;
do
{
entrada = escaner.nextLine();
if(entrada.equalsIgnoreCase(mesSecreto))
{
resuelto = true;
}else
{
resuelto = false;
}
if(resuelto == false)
{
System.out.println("\f\nTe has equivocado! el mes secreto no es " + entrada + ", Desas optener una pista (s/n)?");
entrada = escaner.nextLine();
switch(mesSecreto)
{
case "enero": pista = "Pista: Primero lo primero."; detalles = "enero es el primer mes."; break;
case "febrero": pista = "Pista: Que opinas de cupido?"; detalles = "febrero es el mes de cupido."; break;
case "marzo": pista = "Pista: Me párese haber visto un marziano."; detalles = "en realidad se escribe marciano, pero marziano hace pensar mas en el mes marzo."; break;
case "abril": pista = "Pista: tortugas ninjas, reportera, te suena?"; detalles = "la reportera del comic, ninjas tortugas adolescentes mutantes se llama abril."; break;
case "mayo": pista = "Pista: Ella me dijo: si veo una rata me desmayo, Lolz."; detalles = "muy clara, mes de mayo."; break;
case "junio": pista = "Pista: mitad."; detalles = "la mitad de 12 es 6, junio es el mes 6."; break;
case "julio": pista = "Pista: Cantante de apellido iglesias."; detalles = "Cantante julio iglesias."; break;
case "agosto": pista = "Pista: Se agoto mi paciencia."; detalles = "solo faltaria incluir una (s) para que agoto de agotar, sea el mes de ago(s)to."; break;
case "septiembre": pista = "Pista: El mas largo de todos."; detalles = "septimembre es el mes con mas letras.";break;
case "octubre": pista = "Pista: 5 + 5."; detalles = "5 + 5 = 10, mes 10 = octubre"; break;
case "noviembre": pista = "Pista: Sus dos primeras letras forman el sinónimo de la palabra (si)"; detalles = "sinónimo de si = no, noviembre."; break;
case "diciembre": pista = "Pista: navidad?"; detalles = "diciembre = navidad.";break;
default: pista = pista; detalles = detalles; break;
}
if(entrada.equalsIgnoreCase("s"))
{
System.out.println("\f\n" + pista);
}
else if(entrada.equalsIgnoreCase("n"))
{
System.out.println("\f\nAsi que prefieres adivinar sin pistas, pues inténtalo nuevamente.");
}
}
}while(resuelto == false);
System.out.println("\f\nHas acertado!! El mes secreto entre los " + listaDeMeses.length + " meses es: " + mesSecreto + ".\n");
System.out.println(pista + "\n" + "Detalles sobre la pista: " + detalles + "\n" + "\nHasta luego.");
}
}
public class Ejemplo{
public String [] listaDeMeses;
public Ejemplo()
{
String [] listaDeMeses = new String[12];
}
}
donde int 12 limita al Array al que apunta la variable apuntadora listaDeMeses a contener 12 o menos de 12 objetos tipo String y no mas de 12. Aquí viene mi duda: al declarar una sintaxis como: String [] listaDeMeses = {"enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"};
estoy creando un Array estático o un Array dinámico?import java.util.*;
public class Ejemplo{
public ArrayList<String>lista;
public Ejemplo()
{
lista = new ArrayList<String>();
lista.add("enero");
lista.add("enero");
lista.add("...diciembre");
}
}
aceptable en este ejercicio?String [] listaDeMeses = {"enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"};
String [] listaDeMeses=new String[12];
listaDeMeses[0]="enero";
...
listaDeMeses[11]="diciembre";
public class Prueba {
public static void main(String[] arg){
String [] listaDeMesesEstatica={"enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"};
ArrayList<String> listaDeMesesDinamica=new ArrayList<>(Arrays.asList(listaDeMesesEstatica));
listaDeMesesDinamica.add("mes13");
for(String s:listaDeMesesDinamica){
System.out.println(s);
}
}
}
public class Prueba {
public static void main(String[] arg){
String [] listaDeMesesEstatica={"enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"};
ArrayList<String> listaDeMesesDinamica=new ArrayList<>(Arrays.asList(listaDeMesesEstatica));
listaDeMesesDinamica.add("mes13");
String[] listaDeMesesEstatica2=new String[listaDeMesesDinamica.size()];
listaDeMesesDinamica.toArray(listaDeMesesEstatica2);
for(String s:listaDeMesesEstatica2){
System.out.println(s);
}
}
}
public class Prueba {
public static void main(String[] arg){
ArrayList<String> lista = new ArrayList<String>() {{
add("elemento1");
add("elemento2");
add("elemento3");
}};
lista.add("elemento4");
for(String s:lista){
System.out.println(s);
}
}
}
String [] lista = {"enero", "...", "diciembre", "wisky"};
el compilador no me da un error de tipo: java.lang.ArrayIndexOutOfBoundsException: Entonces tengo un Array dinámico, porque me permite agregar tantos meses como me imagine, y como estoy programando borracho y la borrachera me dio con creer que un meteorito impacto la tierra y que tenemos un nuevo mes 13 con nombre whisky XD entonces lo he agregado. A diferencia de usar un código como: String [] lista; lista = new String[12]; lista[0] = "enero"; lista[...] = "..."; lista[12] = "whisky";
Donde también estoy borracho pero java me cubre la espalda y me dice: java.lang.ArrayIndexOutOfBoundsException. traducción de lo que me dice java: Estas borracho? estas agregando 13 meses donde ayer cuando no estabas borracho indicaste que solo son 12 meses.Desde que uses [] piensa en que estarás usando arrays (o matrices) estáticas.