2017-02-07 3 views
-1

Ich versuche, die folgende Methode zu erstellen, um die Datei "studentmarks.txt" zu lesen. Ich kann jedoch nicht erreichen, dass Studentenmarkierungen als Int wie 65 60 52 gelesen und in einem Array gespeichert werden. Es wird weiterhin der Fehler "java.util.InputMismatchException null" ausgegeben. Wie würde ich das beheben, ohne das Format der Datei "studentmarks.txt" zu ändern? Vielen Dank!Java-Scanner-Klasse speichert mehrere int-Werte aus Datendatei in ein Array

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 Klasse:

public class StudentRecord 
{ 

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

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

Sie sollten das Problem erklären, bevor Sie den Code so zeigen, dass es für jemanden einfacher ist zu verstehen, was Ihre Anforderung ist und was dann Ihr Problem ist. –

Antwort

1
int result = Integer.parseInt(number); 

Sie können die parseInt(String val) Methode verwenden, um einen String-Wert von 65 auf einen ganzzahligen Wert zu analysieren und die Speichern Sie das in einem Array

Verwandte Themen