2017-02-07 16 views
-1

「studentmarks.txt」ファイルを読み取るために、以下のメソッドを作成しようとしています。しかし、生徒のマークを65 60 52のようなintとして読み込んで配列に格納することはできません。エラー "java.util.InputMismatchException null"を出力し続けます。 "studentmarks.txt"ファイルの形式を変更せずにこれを修正する方法はありますか?ありがとうございました!データファイルから配列に複数のint値を格納するJavaスキャナクラス

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); 

あなたは整数値に65の文字列値を解析するparseInt(String val)メソッドを使用してすることができますそれを配列に格納する

関連する問題