您好,感谢您花时间回答这个问题。我正在进行一项任务,我必须使用扫描仪将txt文件中的名称和分数读入数组。我不能使用arrayList(哦,这将是多么容易)。无论如何,我一直在拉线找不到错误。我错过了什么 正在读入的数据格式如下:
Puckett, Karen
10 10 9.5 10 10 8 9.5 10 10 10 9 10 10 10 0
4 3 5 3 5 2 3 2 1.5 1 5 3.5
17.5 24 22 23.5 22 23
90 91
96
代码从这里开始
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.Scanner;
/**
*
* @author Cade
*/
public class CS1180Project04McLarty {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws FileNotFoundException {
int studentCount = 16;
int LabCount = 16;
int quizCount = 12;
double [] projectGrades;
double [] examGrades;
double [] finalsGrade;
double [] labGrades = new double[LabCount];
double [] quizGrades = new double [quizCount];
String [] names = new String[studentCount];
File doc = new File("scores.txt");
Scanner fin = new Scanner(doc);
names = fileReaderNames(studentCount ,doc, fin);
for (int i = 0; i < names.length; i++) {
System.out.println(names[i]);
}
}
/**
* reads in names only
* @param studentCount int count of students set to 16 in main
* @param doc file being read
* @param fin scanner
* @return complete Array of the names
*/
private static String[] fileReaderNames(int studentCount, File doc, Scanner fin ) {
int count = 0;
String [] names = new String[studentCount];
while (fin.hasNext()) {
names[count] = fin.nextLine();
fin.nextLine();
fin.nextLine();
fin.nextLine();
fin.nextLine();
fin.nextLine();
count++;
}
fin.close();
return names;
}
}
答案 0 :(得分:1)
您的代码期望名称后跟5行(我想其他一些数据),但是因为您只测试每个第6行存在。如果缺少任何其他行(这意味着总行数不是任何原因的6的倍数),它将失败。