2017-02-07 9 views
-1

Я пытаюсь создать метод ниже, чтобы прочитать файл «studentmarks.txt». Тем не менее, я не могу получить отметки учащихся, которые должны быть прочитаны как int, такие как 65 60 52 и хранятся в массиве. Он продолжает выводить ошибку «java.util.InputMismatchException null». Как я могу исправить это, не изменяя формат файла «studentmarks.txt»? Спасибо!Класс сканера Java, хранящий несколько значений int из файла данных в массив

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:

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

StudentRecord Класс:

public class StudentRecord 
{ 

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

    public StudentRecord(String name) 
    { 
    marks = new int[24]; 
    this.name = name; 
    } 
+0

Вы должны объяснить проблему, прежде чем показывать код таким образом, чтобы кому-то было легче понять, каково ваше требование, а затем какая у вас проблема. –

ответ

1
int result = Integer.parseInt(number); 

Вы можете использовать метод parseInt(String val) для разбора значение строки 65 до целочисленного значения и тому хранить в массиве