Ich muss eine Aufgabe bearbeiten und habe nur noch Probleme mit einer Klasse.
Beim hochladen auf die Seite, auf der ich die Aufgabe abgebe, werden noch tests ausgeführt.
Hier fehlen mir noch 4 Tests und ich weiß einfach nicht, was das Problem ist.
Die Fehler sehen so aus:
java.lang.AssertionError: An IOException occurred while parsing the following CSV:
und jetzt bei allen möglichen Inhalten wird der Fehler angezeigt.
Ob der Inhalt so :
date;open;high;low;close
SHARE;Adidas;;;
oder so:
date;open;high;low;close
SHARE;Deutsche Telekom;;;
01.01.2013;5.00;4.00;6.00;5.50
ist.
Wo liegt das Problem?
Beim hochladen auf die Seite, auf der ich die Aufgabe abgebe, werden noch tests ausgeführt.
Hier fehlen mir noch 4 Tests und ich weiß einfach nicht, was das Problem ist.
Java:
public class CSVShareImporter implements ShareImporter {
private Scanner scan;
private Scanner innerScan;
@Override
public Collection<Share> load(InputStream is) throws IOException {
scan = new Scanner(is);
Collection<Share> shares = new ArrayList<Share>();
String line;
if(shares.isEmpty()==true){
throw new IOException();
}
else if ((line=scan.nextLine()) != "date;open;high;low;close") //scanner nimmt die erste Zeile und schaut, ob sie richtis ist
throw new IOException();
String shareInput = scan.toString(); //restlicher Text wird zu einem langen String gemacht
String[] splitShareInput = shareInput.split(("SHARE;")); //Langes String zu Array, wird immer an "SHARE" geteilt
for(String s : splitShareInput){
String name;
innerScan = new Scanner(s);
line = innerScan.nextLine();
name = line.split(";")[0]; //Die Zeile wird aufgesplittet und der erste Wert uebernommen
ArrayList<Dataset> set = new ArrayList<Dataset>();
while ((line=scan.nextLine()) != null) {//solange das jeweilige Array nicht zu Ende ist
Calendar date = Calendar.getInstance(); //neuen Calendar erstellen
String[] splitLine = line.split(";"); //schon wieder Array
date.set(Integer.valueOf(splitLine[0].split(".")[2]), //Datum wird uebergeben, aufgesplittet und die jeweiligen Werte verwendete
Integer.valueOf(splitLine[0].split(".")[1]),
Integer.valueOf(splitLine[0].split(".")[0]));
Dataset dataset = new Dataset(date, Integer.parseInt(splitLine[1]),
Integer.parseInt(splitLine[2]),
Integer.parseInt(splitLine[3]),
Integer.parseInt(splitLine[4]));
set.add(dataset);
}
Share share = new Share(name, set);
shares.add(share);
}
return shares;
}
}
Die Fehler sehen so aus:
java.lang.AssertionError: An IOException occurred while parsing the following CSV:
und jetzt bei allen möglichen Inhalten wird der Fehler angezeigt.
Ob der Inhalt so :
date;open;high;low;close
SHARE;Adidas;;;
oder so:
date;open;high;low;close
SHARE;Deutsche Telekom;;;
01.01.2013;5.00;4.00;6.00;5.50
ist.
Wo liegt das Problem?
Zuletzt bearbeitet von einem Moderator: