Estoy tratando de codificar un cuestionario de estados y capitales y casi lo tengo completo, sin embargo, cuando intento ingresar cualquiera de las mayúsculas donde tengo que poner 2 palabras (es decir, Little Rock o Oklahoma City) lo tiene como 2 entradas separadas y por mi vida no puedo conseguir que lo cuente como uno.
Aquí está mi código hasta ahora:
public static void main(String[] args) {
Scanner input = new Scanner (System.in);
ArrayList<String> States = new ArrayList<>();
ArrayList<Object> Capitals = new ArrayList<>(States);
String capitals [][] = {
{"Alabama", "Montgomery"},
{"Alaska", "Juneau"},
{"Arizona", "Phoenix"},
{"Arkansas", "LittleRock"},
{"California", "Sacramento"},
{"Colorado", "Denver"},
{"Connecticut", "Hartford"},
{"Delaware", "Dover"},
{"Florida", "Tallahasse"},
{"Georgia", "Atlanta"},
{"Hawaii", "Honolulu"},
{"Idaho", "Boise"},
{"Illinois", "Springfield"},
{"Indiana", "Indianapolis"},
{"Iowa", "DesMoines"},
{"Kansas", "Topeka"},
{"Kentucky", "Frankfort"},
{"Louisiana", "BatonRouge"},
{"Maine", "Augusta"},
{"Maryland", "Annapolis"},
{"Massachusettes", "Boston"},
{"Michigan", "Lansing"},
{"Minnesota", "Saint Paul"},
{"Mississippi", "Jackson"},
{"Missouri", "JeffersonCity"},
{"Montana", "Helena"},
{"Nebraska", "Lincoln"},
{"Nevada", "CarsonCity"},
{"New Hampshire", "Concord"},
{"New Jersey", "Trenton"},
{"New York", "Albany"},
{"New Mexico", "SantaFe"},
{"North Carolina", "Raleigh"},
{"North Dakota", "Bismark"},
{"Ohio", "Columbus"},
{"Oklahoma", "OklahomaCity"},
{"Oregon", "Salem"},
{"Pennslyvania", "Harrisburg"},
{"Rhode Island", "Providence"},
{"South Carolina", "Columbia"},
{"South Dakota", "Pierre"},
{"Tennessee", "Nashville"},
{"Texas", "Austin"},
{"Utah", "Salt Lake City"},
{"Vermont", "Montpelier"},
{"Virginia", "Richmond"},
{"Washington", "Olympia"},
{"West Virginia", "Charleston"},
{"Wisconsin", "Madison"},
{"Wyoming", "Cheyenne"}
};
for(int i = 0; i<=49; i++){
States.add(capitals[i][0]);
Capitals.add(capitals[i][1]);
}
for(int i = 0; i<49; i++){
String guess;
int index = (int)((Math.random())*(49 - i));
System.out.println("What is the capital of: " + States.get(index));
States.remove(index);
guess = input.next();
if(Capitals.get(index).equals(guess)){
System.out.println("Correct");
Capitals.remove(index);
}else{ System.out.println("Incorrect");
Capitals.remove(index);
}
}
}
Solución del problema
Para profundizar en lo que dice @Gus aquí "Puede cambiar el patrón delimitador, o tal vez usar nextLine ()",
Leer tokens individuales puede ser su perdición. "I like pie" se lee separado como "I" "like" "pie" con line.next() pero junto como "I like pie" con line.nextLine()
EDITAR PARA MÁS DETALLES
Para traer una línea de ejemplo en:
for(int i = 0; i<=49; i++) // {"Utah", "Salt Lake City"},
{
States.add(capitals[i][0]); // add Utah
Capitals.add(capitals[i][1]); // add Salt
}
En este índice, capitales[44][], el tamaño se establece en 4 debido a cada palabra leída.
No hay comentarios.:
Publicar un comentario