hey, hbe eine klasse Student, welche Daten aus einer Datei einelsen soll. Das Prog müsste iegntlich klappen, allerdings kommt ständig vollgender Fehlercode:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 441
at java.lang.String.charAt(Unknown Source)
at Übung09.Student_daten.datenverifizieren(Student_daten.java:34)
at Übung09.Student_daten.main(Student_daten.java:88)
Poste hie mal meinen Code, an der Datei liegt es nicht, sie befindet sich auch an der korrekten Position. Wäre cool wenn jemand von euch den Fehler sehen würde.
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 441
at java.lang.String.charAt(Unknown Source)
at Übung09.Student_daten.datenverifizieren(Student_daten.java:34)
at Übung09.Student_daten.main(Student_daten.java:88)
Poste hie mal meinen Code, an der Datei liegt es nicht, sie befindet sich auch an der korrekten Position. Wäre cool wenn jemand von euch den Fehler sehen würde.
Code:
package Übung09;
import java.io.*;
public class Student_daten {
public static String read() {
String dat="";
try
{
FileReader f = new FileReader("F:/Eigene Dateien/Eclipse/Übung/Übung09/studentendaten.txt");
int c;
while ((c = f.read()) != -1)
dat = dat + (char) c;
f.close();
} catch (IOException e) {
System.out.println("Fehler beim Lesen der Datei");
}
return dat;
}
public static void datenverifizieren(){
Student[] student_data = new Student[10];
String text,name="",matrikel="",tag="",monat="",jahr="";
int mat=0,t,m,j,i=0;
text = read();
for(int k = 0; k <7;k++){
while(text.charAt(i) != (char)45){
name = name + text.charAt(i);
i++;
}
i++;
while(text.charAt(i) != (char)45){
matrikel = matrikel + text.charAt(i);
i++;
}
i++;
while(text.charAt(i) != (char)46){
tag = tag + text.charAt(i);
i++;
}
i++;
while(text.charAt(i) != (char)46){
monat = monat + text.charAt(i);
i++;
}
i++;
while(text.charAt(i) != (char)59){
jahr = jahr + text.charAt(i);
i++;
}
i=i+3;
t = Integer.parseInt(tag);
m = Integer.parseInt(monat);
j= Integer.parseInt(jahr);
mat = Integer.parseInt(matrikel);
Date_object date = new Date_object(t,m,j);
try {
Student student = new Student(name,date,mat);
student_data[k] = student;
}
catch(InvalidNumberException e){
System.out.println("Matrikelnummer fehlerhaft bei: " + name + " | " + date.toString());
System.out.println();
}
name="";matrikel="";tag="";monat="";jahr="";
}
for(int l = 0; l < 7 ; l++){
System.out.println(student_data[l]);
}
}
public static void main(String[] args) {
datenverifizieren(); //Datei einlesen
}
}
Code:
package Übung09;
public class Student {
private String pr_name;
private Date_object pr_birthdate;
private int pr_matrikel;
public Student(String name, Date_object birthdate, int matrikel){
pr_name = name;
pr_birthdate = birthdate;
pr_matrikel = matrikel;
if (pr_matrikel < 100000 || pr_matrikel > 999999){
throw new InvalidNumberException("") ;
}
}
public void check_matrikel(){
}
public String toString(){
return "Name: " + pr_name + " | " + "Geburtsdatum: " + pr_birthdate + " | " + "Matrikel-Nr.: " + pr_matrikel;
}
}