Bei folgenden zwei Codezeilen taucht bei meinem Programm ein Fehler auf!
Die zwei Codezeilen:
Der Fehler:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at schuelerliste.Schuelerliste.main(Schuelerliste.java:37)
C:\Users\Philipp\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 5 seconds)
Was könnte da falsch sein?
Der ganze Code:
Der Code der Klasse Schüler (für das angelegte Object oben):
Die zwei Codezeilen:
Java:
Student s = new Student(arr[0], arr[1]);
l.add(s);
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at schuelerliste.Schuelerliste.main(Schuelerliste.java:37)
C:\Users\Philipp\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 5 seconds)
Was könnte da falsch sein?
Der ganze Code:
Java:
package schuelerliste;
import java.io.*;
import java.util.*;
public class Schuelerliste
{
public static void main(String[] args) throws FileNotFoundException, IOException
{
Reader r = new FileReader("Schueler.txt");
BufferedReader br = new BufferedReader(r);
BufferedReader rb = new BufferedReader(new InputStreamReader(System.in));
List<Student> l = new ArrayList<>();
LineNumberReader lnr = new LineNumberReader(br);
Writer out = new FileWriter("S.txt");
while (true)
{
String line = br.readLine();
if (line == null)
{
break;
}
String[] arr = line.split(";");
Student s = new Student(arr[0], arr[1]);
l.add(s);
int linenumber = lnr.getLineNumber() + 1;
System.out.println("Gebe Grupper ein!");
String gruppe = rb.readLine();
System.out.println("PC-Nummer eintragen!");
String nr = rb.readLine();
int pcNr = Integer.parseInt(nr);
out.write(linenumber + " " + s.getNachname() + " " + s.getVorname() + " " + gruppe + " " + pcNr);
}
r.close();
out.flush();
out.close();
}
}
Der Code der Klasse Schüler (für das angelegte Object oben):
Java:
package schuelerliste;
public class Student implements Comparable<Student>
{
private String nachname;
private String vorname;
public Student(String nachname, String vorname)
{
this.nachname = nachname;
this.vorname = vorname;
}
public String getNachname()
{
return nachname;
}
public void setNachname(String nachname)
{
this.nachname = nachname;
}
public String getVorname()
{
return vorname;
}
public void setVorname(String vorname)
{
this.vorname = vorname;
}
@Override
public int compareTo(Student s)
{
if (nachname.charAt(0) == s.getNachname().charAt(0))
{
return 0;
}
if (nachname.charAt(0) > s.getNachname().charAt(0))
{
return 1;
}
return -1;
}
}