|
|
1
2
你用各种各样的 magic numbers ,代码中的数字没有多大意义。
这些都应该是同一个号码,对吧?如果我们有25个问题,我们应该有25个空间,读25个,用25个。 1做一个常数
3使用列表/集合
选项3是最好的选择,毕竟这是java。请参阅Mike的答案,以获得更多关于使这个更为Java的详细信息。 |
|
2
4
我认为一点结构上的改变会对你有很大的帮助,也会让你更容易做到这一点。定义新类:
Collection API . 对于一组问题,您可以使用shuffle方法将它们随机化为一行。让Java为您做这项工作。
为了更好的解释你为什么要这么做,为什么。。。 尽你所能。问题、答案和选项都是不同的关注点。用户的反应令人担忧。这些问题的随机性令人担忧。对用户响应的响应是一个问题。 作为一个优秀的软件开发人员,你需要把所有这些事情划分开来。Java实现这一点的构造是类。你可以在他们自己的班级里相对独立地发展你的想法。当你对你的课程感到满意时,你所要做的就是把它们联系起来。定义他们的 接口 可能看起来需要做很多工作,包括所有这些类和接口等等。当你做得好的时候,用这种方法只需要一小部分时间。你的回报是可测试性和可重用性。 |
|
|
3
2
其他人(Mike,Erick)已经提出了解决这个问题的更好方法,创建了一个新的
关于为什么在代码中“得到一个空值”:就我在示例代码中所看到的,您只从文件中读取了两个问题:
稍后,当你试图随机化你的问题时
这将返回一个介于1和25之间的值,然后将其用作数组索引。
如果这个索引恰好是'1',你就没事了。对于所有其他情况(2到25),您将访问
|
|
|
4
1
创建一个类来保存问题,并将文件读入这些对象的数组中。
ArrayList questions = new ArrayList();
for(ar=0;ar<2;ar++){
q=br.readLine();
a=br.readLine();
b=br.readLine();
c=br.readLine();
d=br.readLine();
String tempo=br.readLine();
ans=tempo.charAt(0);
questions.add(new Question(q, a, b, c, d, ans));
}
随机排列如下: Collections.shuffle(questions); 然后把问题循环输出。 for (Question q: questions) {
q.write();
System.out.println(); // space between questions
}
创建这样的问题类来保存数据: public class Question {
private String question;
private String option1;
private String option2;
private String option3;
private String option4;
private String answer;
public Question(String question, String option1, String option2, String option3,
String option4, String answer) {
this.question = question;
this.option1 = option1;
this.option2 = option2;
this.option3 = option3;
this.option4 = option4;
this.answer = answer;
}
public void write() {
System.out.println(this.question);
System.out.println(this.option1);
System.out.println(this.option2);
System.out.println(this.option3);
System.out.println(this.option4);
System.out.println("Answer: "+this.answer);
}
}
|
|
|
Akra · C从文本文件复制子字符串 8 年前 |
|
|
Manuel · 一串即使拆分有效,也会产生错误 8 年前 |
|
|
Pfalbaum · 从文本文件中删除BeautifulSoup标记 8 年前 |
|
|
probat · Python 3+如何编辑文本文件中的行 8 年前 |
|
|
kroneckersdelta · 用python对文件中的整数求和 8 年前 |
|
lefrost · 从文本文件中计算字数时出错 8 年前 |
|
lefrost · 对文本文件中的整数进行计数和求和时遇到问题 8 年前 |
|
|
somebrick · 如何有组织地写入文件? 9 年前 |