[英]How can I read a String from a file split it into characters and put it in to a 2D array?
我正在创建一个模拟scantron标记器功能的程序。 我有一个文本文件,上面写着学生的名字,后面是他们的答案。 这是我创建的示例文件:
Arnie
EADCC
Betty
dadec
Carol
ba ea
在我的主机中,我要求用户输入文件名,然后将其传递给我创建的QuizMarker类。 现在,我想以字符串的形式获取名称,并将其放入一维数组,以字符数组的形式获取答案,并将其放入2D数组,以便可以将学生答案与正确答案文件进行比较。 我仅出于测试目的对行数进行了硬编码。 我一直在试图弄清楚如何使这一工作整日变得异常糟糕,但是现在我的大脑已经完全被烤透了。 我需要帮助。 这是我的方法readNamesAnswers():
代码readNamesAnswers():
public void readNamesAnswers(){
while (readerStu_Ans.hasNext()){
studentName[indexStudentName] = readerStu_Ans.nextLine();
for (int iRowStudentAnswer=0; iRowStudentAnswer<3; iRowStudentAnswer++){
studentAnswers[iRowStudentAnswer]= stuAnswers.split("(?!^)");
System.out.println(studentAnswers[iRowStudentAnswer][0]);
}
for(int row=0; row<3; row++){
for(int column= 0; column<studentAnswers[column].length; column++){
System.out.println(studentAnswers[column][row]);
}
}
System.out.println("\n"+studentName[indexStudentName]);
System.out.println();
indexStudentName++;
}
}
PS。 我是Java和一般编程的新手。
您创建了非常复杂且难以理解和维护的代码。 您真的需要使用二维数组吗?
这可以通过另一种方式轻松完成。 您可以创建另一个类,其中包含每个学生的所有数据。 这样的事情。
public class Student{
private String name;
private String answer;
public Student(String name, String answer) {
super();
this.name = name;
this.answer = answer;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAnswer() {
return answer;
}
public void setAnswer(String answer) {
this.answer = answer;
}
}
通过上这堂课,您可以轻松设置并获取每位学生的任何信息。
您可以逐行读取文件,并在新的Student实例中添加每个学生的信息。 每个学生都是Student的新实例。
您可以将所有这些对象保留在List,Set,Map或其他内容中。了解Java中的集合 。 这很重要。
这是一种方法。
List<Student> students = new ArrayList<Student>();
int studentCount = 3;
for (int i = 0; i < studentCount; i++) {
students.add(new Student("name", "answer"));
}
这样,代码就易于阅读和理解。 学习了系列之后,您会问自己:如果没有它,您怎么会编程……您将重生!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.