Hi,
ich muss eine csv-Tabelle erstellen die die Ergebnisse eines Fußball Turniers darstellen soll. Dazu ist noch eine weitere Tabelle zu erstellen, in der die einzelnen Siege, Niederlagen, Unentschieden etc. aus der anderen Tabelle aufgeführt werden.
Ich habe bereits die erste Tabelle.
Hier die Meethoden zum Auslesen:
Neue Tabelle:
Jetzt gibt mir das Programm folgenden Fehler zurück:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 1
at java.lang.String.charAt(Unknown Source)
at CSVReader.zaehlenGewinner(CSVReader.java:36)
at GewinnerTabelle.generateCsvFile(GewinnerTabelle.java:43)
at Menue.printMenue(Menue.java:36)
at Mainclass.main(Mainclass.java:7)
ich muss eine csv-Tabelle erstellen die die Ergebnisse eines Fußball Turniers darstellen soll. Dazu ist noch eine weitere Tabelle zu erstellen, in der die einzelnen Siege, Niederlagen, Unentschieden etc. aus der anderen Tabelle aufgeführt werden.
Ich habe bereits die erste Tabelle.
Java:
class CSVWriter
{
int zeilencounter;
int teamcounter;
public void generateCsvFile(String s)
{
try
{
int max=5;
File eineCSV = new File (s+".csv");
BufferedWriter writer = new BufferedWriter(new FileWriter(eineCSV, true));
for(zeilencounter = 0; zeilencounter <=max; zeilencounter++)
{
if(zeilencounter == 0)
{
writer.append(";");
}
else
writer.append("Team "+zeilencounter+";");
}
writer.append("\n");
for(teamcounter = 1; teamcounter<=max; teamcounter++)
{
writer.append("Team "+teamcounter+";");
for(int i = 1; i<=max; i++)
{
if((teamcounter) == i)
writer.append("-"+";");
else
{
int a = (int)(Math.random()*5);
int b = (int)(Math.random()*5);
writer.append(a+":"+b+";");
}
}
writer.append("\n");
}
writer.flush();
writer.close();
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
Hier die Meethoden zum Auslesen:
Java:
public int zaehlenGewinner(int[][] team)
{
int counter=0;
try
{
BufferedReader reader = new BufferedReader(new FileReader("CSVDatei.csv"));
for(int i = 0; i <= max; i++) //geht jede Zeile durch
{
zeile = reader.readLine();
for(int j = 0; j<=max; j++) //geht jede Spalte durch
{
String[] split=zeile.split(";"); //hier wird die Zeile zerlegt als Trennzeichen ;
if(split[0].matches("T") || split[0].matches("-"))
{
}
else
{
int a = new Integer(split[j].charAt(1)).intValue();
int b = new Integer(split[j].charAt(4)).intValue();
if(a > b)
{
counter++;
}
}
//team[i][2] = counter;
}
}
reader.close();
}
catch(IOException e)
{
e.printStackTrace();
}
return counter;
}
Neue Tabelle:
Java:
public class GewinnerTabelle
{
int zeilencounter;
int teamcounter;
int counter;
public void generateCsvFile()
{
try
{
int max=5;
File eineCSV = new File ("Gewinnertabelle.csv");
BufferedWriter writer = new BufferedWriter(new FileWriter(eineCSV));
CSVReader reader = new CSVReader();
int[][] team = new int[5][7];
writer.append("Team"+";");
//writer.append("Platz"+";");
writer.append("Anzahl \nSiege"+";");
writer.append("Anzahl \nUnentschieden"+";");
writer.append("Anzahl \nNiederlagen"+";");
writer.append("Score"+";");
writer.append("Punkte"+";");
writer.append("\n");
for(teamcounter = 1; teamcounter<=max; teamcounter++)
{
writer.append("Team "+teamcounter+";");
for(teamcounter = 1; teamcounter<=max; teamcounter++)
{
for(int i = 1; i<=max; i++)
{
writer.append((reader.zaehlenGewinner(team))+";");
writer.append((reader.zaehlenUnentschieden(team))+";");
writer.append((reader.zaehlenNiederlagen(team))+";");
writer.append((reader.score(team))+";");
writer.append((reader.punkteZaehlen(team))+";");
writer.append("\n");
}
writer.append("\n");
}
}
writer.flush();
writer.close();
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
Jetzt gibt mir das Programm folgenden Fehler zurück:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 1
at java.lang.String.charAt(Unknown Source)
at CSVReader.zaehlenGewinner(CSVReader.java:36)
at GewinnerTabelle.generateCsvFile(GewinnerTabelle.java:43)
at Menue.printMenue(Menue.java:36)
at Mainclass.main(Mainclass.java:7)
Zuletzt bearbeitet: