Methoden Termin parsen

flowbob

Mitglied
Blöder Titel, ich weiß, aber mir ist nichts besseres eingefallen.

Ich habe folgendes Problem:

Für einen Terminkalender spiechere ich die einzelnen Termine in einer .csv Datei im Format "1.1.2011;11:11Uhr;name;description;;"

Beim start des Programms soll natürlich wieder alles ausgelesen werden, wozu ich folgende Methode verwende:

Java:
public Termin lineToTermin(String s) {
		int pos = 0;
		int[] date;
		int[] time;
		String buffer = "";
		String name = null;
		String beschreibung = null;
		int year = 0;
		int month = 0;
		int day = 0;
		int hour = 0;
		int minute = 0;

		for (int i = 0; i < 4; i++) {
			buffer = "";
			{
				while (s.charAt(pos) != ';') {
					buffer = buffer + s.charAt(pos);
					pos++;
				}
				switch (i) {
				case 0:
					date = stringToDate(buffer + ".");
					day = date[0];
					month = date[1];
					year = date[2];
				case 1:
					time = stringToTime(buffer);
					minute = time[0];
					hour = time[1];
				case 2:
					name = buffer;
				case 3:
					beschreibung = buffer;
				}
			}
			pos++;
		}
		return new Termin(name, beschreibung, year, month, day, hour, minute);
	}

Jetzt bekomme ich an der Stelle time = stringToTime(buffer); (z.28) ein null-object zurück, weil der übergebene buffer kein gültiges Uhrzeit-Format hat, sondern "1.1.2011" lautet.

Meine Frage: Warum wird der buffer nach durchlauf von case 1 nicht auf "" gesetzt, wie es ja eigentlich da steht? Ich verstehe nicht was ich falsch gemachtz habe, bzw warum der buffer nicht wieder geleert wird und die while schleife einfach ab pos weitermacht...

vllt könnt ihr mir ja helfen!

Gruß,
Flo
 
Zuletzt bearbeitet von einem Moderator:
Ohne jetzt genauer nachzuvollziehen was da passiert: in dem switch-block fehlen die
Code:
break
-Anweisungen. Es kann sein, dass das die Fehlerursache ist.
 

Neue Themen


Zurück
Oben