[英]Shuffling questions from a csv file and putting numbers in front of them
我对改组问题有疑问,后来又把数字放在了他们的前面。 现在,下面的代码正在从csv文件中获取问题和可能的答案。 它会拖延选择,然后纠正答案并为其打分。 当人们想要的时候,代码也会停止。(我剪掉了代码,因为这是不必要的)。我试图打乱问题,但是没有用(有一个关于我尝试的可见代码),我也不知道该怎么做。给他们编号。 任何想法都欢迎!
import java.io.BufferedReader;
import java.io.FileReader;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class misasiseeon {
@SuppressWarnings("rawtypes")
public static void main(String[] args) throws Exception {
int questionsCorrect = 0;
int questionsAnswered = 0;
boolean finish = false;
String splitBy = ",";
BufferedReader br = new BufferedReader(new FileReader("/FilePath"));
String line = br.readLine();
while ((line = br.readLine()) != null) {
String[] b = line.split(splitBy);
String question = (b[0]);
String answer1 = (b[1]);
String answer2 = (b[2]);
String answer3 = (b[3]);
String answer4 = (b[4]);
String answer5 = (b[5]);
String finish1 = (b[6]);
ArrayList<String> questions = new ArrayList<>();
questions.add(question);
Collections.shuffle(questions);
ArrayList<String> answers = new ArrayList<>();
vastused.add(answer1);
vastused.add(answer2);
vastused.add(answer3);
vastused.add(answer4);
vastused.add(answer5);
Collections.shuffle(answers);
System.out.println(questions);
System.out.println(answers);
}
}
}
}
您已经在循环中声明并初始化了“问题” ArrayList。 这将为循环的每次迭代从头开始重新创建ArrayList。 然后,您将每次都要重新排列1个元素的列表。 您应该将问题ArrayList定义移出循环。
另一个问题是问题与答案的关联。 为此,最好创建一个名为QuestionAndAnswers的新类,该类的实例变量将包含一个问题并可能给出答案。 代替创建问题和答案的单独列表,而创建一个QuestionAndAnswers的ArrayList。 在循环中填充该列表,然后随机播放等。
您正在创建和改组名为“ answers
的列表,但正在将答案添加到名为“ vastused
的列表中。
从此更改:
ArrayList<String> answers = new ArrayList<>();
vastused.add(answer1);
vastused.add(answer2);
vastused.add(answer3);
vastused.add(answer4);
vastused.add(answer5);
Collections.shuffle(answers);
对此:
List<String> answers = new ArrayList<>();
answers.add(answer1);
answers.add(answer2);
answers.add(answer3);
answers.add(answer4);
answers.add(answer5);
Collections.shuffle(answers);
另外要注意的变化answers
,从类型ArrayList
到List
-见里氏替换原则
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.