【发布时间】:2018-02-18 18:04:04
【问题描述】:
以下是文件内容: Contents of the file
文件的前三行包含教师姓名、学科和上课时间,它们都存储在单独的字符串变量中。
文件的其余部分包含 Student 对象的参数,该对象的签名为:Student(String name, int ID, int Grade1, int Grade2, int Grade3, int Grade5, int Grade6, int Grade7, int Grade8 , int Grade9, int Grade10)
我正在尝试输入教师姓名、学科和上课时间,并将它们分别放入单独的字符串变量中
然后输入每个学生的信息并创建一个新的学生对象,然后将每个学生对象放入一个学生对象数组中
到目前为止,这是我的代码:
Scanner sf = new Scanner(new File("Test.txt"));
Student array[] = new Student[3];
for(int x = 0; x < array.length; x++)
{
String name = "";
int id = 0, gradeOne = 0, gradeTwo = 0, gradeThree = 0, gradeFour = 0, gradeFive = 0, gradeSix = 0, gradeSeven = 0, gradeEight = 0, gradeNine = 0, gradeTen = 0;
array[x] = new Student(name, id, gradeOne, gradeTwo, gradeThree, gradeFour, gradeFive, gradeSix, gradeSeven, gradeEight, gradeNine, gradeTen);
}
int counter = 0;
int index = 0;
sf.useDelimiter(",");
String teacher = "", subject = "", period = "";
while(sf.hasNext())
{
if(counter == 0)
{
teacher = sf.nextLine();
counter++;
}
else if(counter == 1)
{
subject = sf.nextLine();
counter++;
}
else if(counter == 2)
{
period = sf.nextLine();
counter++;
}
else
{
array[index].studentName = sf.next();
array[index].studentID = sf.nextInt();
array[index].grade1 = sf.nextInt();
array[index].grade2 = sf.nextInt();
array[index].grade3 = sf.nextInt();
array[index].grade4 = sf.nextInt();
array[index].grade5 = sf.nextInt();
array[index].grade6 = sf.nextInt();
array[index].grade7 = sf.nextInt();
array[index].grade8 = sf.nextInt();
array[index].grade9 = sf.nextInt();
array[index].grade10 = sf.nextInt();
index++;
}
}
for(int g = 0; g < index; g++)
{
System.out.println(array[g].studentName + "\t" + array[g].studentID + "\t" + array[g].grade1 + "\t" + array[g].grade2 + "\t" + array[g].grade3 + "\t" + array[g].grade4 + "\t" + array[g].grade5 + "\t" + array[g].grade6 + "\t" + array[g].grade7 + "\t" + array[g].grade8 + "\t" + array[g].grade9+ "\t" + array[g].grade10);
}
当我运行程序时,我得到一个 InputMismatchException,这是否意味着文件的前三行也需要逗号?还是我做错了什么?这是输入文件的最佳方式吗?任何建议都会有所帮助,谢谢。
【问题讨论】:
-
A) 提供一个真实的minimal reproducible example(就像一个带有行号的完整堆栈跟踪,并告诉我们指出了源代码中的哪些行)B)“任何建议”通常不是什么这个网站是关于。