繁体   English   中英

从csv文件转换问题并将数字放在它们前面

[英]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 ,从类型ArrayListList -见里氏替换原则

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM