Java 对象测试数组,但未获得任何输出
我想要一些关于我正在测试的特定代码的指导,但目前它没有打印出任何内容,除此之外,我觉得它根本没有读取文本文件。它似乎马上就完成了,没有任何错误,我只得到了构建成功的提示。 作业是从一个数据文本文件中读取,该文件列出了20行学生信息,每行由名字、姓氏和他们的成绩组成,并用空格隔开。我将它放入一个数组并输出它们的信息,但现在我正在测试它是否会在继续之前输出第一个名称Java 对象测试数组,但未获得任何输出,java,arrays,class,object,Java,Arrays,Class,Object,我想要一些关于我正在测试的特定代码的指导,但目前它没有打印出任何内容,除此之外,我觉得它根本没有读取文本文件。它似乎马上就完成了,没有任何错误,我只得到了构建成功的提示。 作业是从一个数据文本文件中读取,该文件列出了20行学生信息,每行由名字、姓氏和他们的成绩组成,并用空格隔开。我将它放入一个数组并输出它们的信息,但现在我正在测试它是否会在继续之前输出第一个名称 public class studentClass { private String studentFName, studentLNa
public class studentClass {
private String studentFName, studentLName;
private int testScore;
private char grade;
//constructor
public studentClass(String stuFName, String stuLName, int stuTestScore){
studentFName = stuFName;
studentLName = stuLName;
testScore = stuTestScore;
}
public String getStudentFName(){
return studentFName;
}
public String getStudentLName(){
return studentLName;
}
public int getTestScore(){
return testScore;
}
public char getGrade(){
return grade;
}
public void setStudentFName(String f){
studentFName = f;
}
public void setStudentLName(String l){
studentLName = l;
}
public void setTestScore(int t){
if (t>=0 && t<=100){
testScore = t;
}
}
public void setGrade(char g){
grade = g;
}
}
public static void main(String[] args) throws IOException {
int numberOfLines = 20;
studentClass[] studentObject = new studentClass[numberOfLines];
for(int i = 0; i>studentObject.length; i++){
System.out.print(studentObject[i].getStudentFName());
}
}
public static studentClass[] readStudentData(studentClass[] studentObject)throws IOException{
//create FileReader and BufferedReader to read and store data
FileReader fr = new FileReader("/Volumes/PERS/Data.txt");
BufferedReader br = new BufferedReader (fr);
String lines = null;
int i = 0;
//create array to store data for firstname, lastname, and score
while ((lines = br.readLine()) != null){
String stuArray[] = lines.split(" ");
String stuFName = stuArray[0];
String stuLName = stuArray[1];
int score = Integer.parseInt(stuArray[2]);
studentObject[i] = new studentClass (stuFName, stuLName, score);
i++;
}
return studentObject;
}
您需要实际调用该方法来读取数据。请尝试以下注意事项:我没有处理异常。我把它作为练习留给你
public static void main(String[] args) throws IOException {
int numberOfLines = 20;
studentClass[] studentObject = new studentClass[numberOfLines];
readStudentData(studentObject);
//NOTE I CHANGED THE '>' TO '<'
for(int i = 0; i < studentObject.length; i++){
System.out.print(studentObject[i].getStudentFName());
}
}
//Note that I changed the return type to void
public static void readStudentData(studentClass[] studentObject)throws IOException{
//Your code here
您将看到我将您的readStudentData更改为返回void,因为您正在将数组传递到不需要返回它的方法中。您需要删除它末尾的返回
您也可以将其保留为返回studentClass[]的方法,并且没有参数。而是在readStudentData内创建studentClass数组。我会推荐这种方法,因为它不需要创建和传递数组,这会使您的主方法变得复杂。我看不出您实际使用方法readStudentData的地方。谢谢,经过这么多的修改和使用不同的代码逻辑后,我忘了添加它。谢谢,我忘了在中添加它,但它现在导致了我在这个问题之前遇到的另一个错误,java.lang.ArrayIndexOutOfBoundsException:1,特别是在这一行字符串stuLName=stuArray[1];我尝试了各种方法来修复它,声明数组中有多少个,但是我得到了一个语法错误。是的,关于异常处理,我将在稍后完成代码时添加它。在哪一行?我注意到的一件事是forint I=0;i> 研究对象长度;i++{实际上应该是forint i=0;如果不使用任何参数编辑它,实际上会导致“studentObject[i]=new studentClass stuFName,stuLName,score;”的语法错误,因为它找不到symbol,所以必须将声明和初始化数组移动到方法中,否则编译器找不到它。