简体   繁体   English

Java 扫描器类将数据文件中的多个 int 值存储到数组中

[英]Java scanner class storing multiple int values from datafile into an array

I am trying to create the below method to read the "studentmarks.txt" file.我正在尝试创建以下方法来读取“studentmarks.txt”文件。 However, I cannot get students marks to be read as an int such as 65 60 52 and stored into an Array.但是,我无法让学生标记被读取为 int(例如 65 60 52)并存储到数组中。 It keeps outputing the error "java.util.InputMismatchException null".它不断输出错误“java.util.InputMismatchException null”。 How would I go about fixing this without altering the format of the "studentmarks.txt" file?我如何在不改变“studentmarks.txt”文件格式的情况下解决这个问题? Thank you!谢谢!

public void readMarksData(String fileName) throws FileNotFoundException
{


    File dataFile = new File(fileName);
    Scanner scanner = new Scanner(dataFile);

    String nameOfCohort = scanner.nextLine(); //1
    System.out.println(nameOfCohort);

    int noOfMarks = scanner.nextInt();  //2
    System.out.println(noOfMarks);

    scanner.nextLine();
    while( scanner.hasNext() )
    {

       scanner.useDelimiter("[,\n]");
       String name = scanner.next();      //3
       System.out.println(name);



         //            int marks[] = new int[3];
         //            for(int i = 0 ; i <= 3 ; i++)
         //            {
         //               marks[i] = scanner.nextInt();
         //            }

       int marks[] = new int[100];

       int markOne = scanner.nextInt();  //4 java.util.InputMismatchException null
       marks = new int[markOne];
       System.out.println(markOne);
       scanner.nextLine();



       int markTwo = scanner.nextInt();      //5
       marks = new int[markTwo];
       scanner.nextLine();

       int markThree = scanner.nextInt();      //6
       marks = new int[markThree];
       scanner.nextLine();
       //              
       //System.out.println(markOne + " " + markTwo + " " + markThree);

    }
    scanner.close();
}

studentmarks.txt:学生标记.txt:

CS1 Group 2
3
Andreas Antoniades
65 85 77
Charlotte Brocklebank
87 93 81
suzanne dawson
0 55 42

StudentRecord Class:学生记录类:

public class StudentRecord
{

   private String name;
   private String noOfMarks; 
   private int[] marks;

   public StudentRecord(String name)
   {
     marks = new int[24];
     this.name = name;  
   }
int result = Integer.parseInt(number);

您可以使用parseInt(String val)方法将 65 的字符串值解析为整数值并将其存储在数组中

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM