2010-12-29 8 views
0

ich möchte die frage zufällig machen, und wenn ich die antwort zu vergleichen, wenn sie richtige antwort sind oder nicht ?? kann mir jemand ein wenig helfen?java random array

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Random;

public class Main {

public static void main(String[] args) { String[] aa = { "question aa" }; String[] bb = { "question bb"}; String[] cc = { "question cc"}; String[] dd = { "question dd"}; String[] e = { "answer to question aa" }; String[] f = { "answer to question bb"}; String[] g = { "answer to question cc"}; String[] h = { "answer to question dd"}; // should be here the random question System.out.print("Enter your answer: "); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String userAnswer = null; try { userAnswer = br.readLine(); } catch (IOException ioe) { System.out.println("IO error trying to read your answer!"); System.exit(1); } System.out.println("Thanks for the answer, " + userAnswer);

}

Antwort

3
class QuestionAnswer{ 
String q; 
String a; 
//getters/setters and const. 
} 

erstellen DS als Ihre Frage Satz kleiner und ratsam ist, im Speicher zu halten

List<QuestionAnswer> lst = new ArrayList<QuestionAnswer>(); 
lst.add(new QuestionAnswer("Question1","Answer1")); 
lst.add(new QuestionAnswer("Question2","Answer2")); 
lst.add(new QuestionAnswer("Question3","Answer3")); 

ein Generieren lief dom ganze Zahl von 0 bis list.size()

Random r = new Random(); 
int index = r.nextInt(lst.size()); 

Frage es holen und ausdrucken und Benutzer akzeptieren; s Antwort

System.out.println(lst.get(index).getQ()); 
Scanner in = new Scanner(System.in); 
// Reads a single line from the console 
String answer = in.nextLine(); 

Vergleichen Antwort des Benutzers mit der Liste

if(answer.equalsIgnoreCase(lst.get(index).getA())){ 
    System.out.println("You are correct. !!"); 
} 
+0

life.java passen, ich Ihre Idee. Aber ich bin nicht ganz davon überzeugt, dass "3 Fetch-Frage" für das OP klar genug ist. Alles, was er hat, ist eine Zufallszahl, wie soll er herausfinden, wie man ein Element der 'Map' mit dieser Nummer bekommt, das ist seine Frage ist der erste Ort ... Ich finde, du solltest das näher ausführen. Meine 2 Cent. – st0le

+0

@ st0le Danke, mir wurde klar, dass es vorher nicht so hilfreich war, bitte überprüfe jetzt –

+0

life.java, Das ist viel besser. +1 :) – st0le

0
  • Halten Sie Fragen in Fragen Array Questi auf [] [] = {aa, bb ...};
  • Antworten in Antworten behalten array arrays [] [] = {e, f ...};
  • Zufallszahl zwischen 0 und questions.length
  • Fragen [random] und Antworten [random] sollte

    String[] aa = { "question aa" }; 
    String[] bb = { "question bb" }; 
    String[] cc = { "question cc" }; 
    String[] dd = { "question dd" }; 
    
    
    String[][] questions = { aa, bb, cc, dd }; 
    
    
    String[] e = { "answer to question aa" }; 
    String[] f = { "answer to question bb" }; 
    String[] g = { "answer to question cc" }; 
    String[] h = { "answer to question dd" }; 
    
    
    String[][] answers = { e, f, g, h }; 
    
    
    int min = 0; 
    int max = 5; 
    int random= 0; 
    
    
    random = min + (int) (Math.random() * max); 
    
    
    questions[random]; 
    answers[random]; 
    
+0

was meinst du mit diesem Teil, sorry, ich verstehe es nicht Fragen [Random]; antwortet [zufällig]; – user557039

+0

Wie kann ich die richtige Antwort mit der Frage übereinstimmen, sobald ich es zufällig gebe ??? – user557039

+0

Random wird im Bereich [0,5) sein, also wenn random = 0 ist die Antwort von [0] die Antwort [0]. dann können Sie die Frage stellen [0] und der Benutzer gibt eine Antwort und Sie stimmen mit den Antworten [0] überein. –