String in Objekt konvertieren

Thisor

Bekanntes Mitglied
Hallo, und zwar folgendes:

Eine Zeichenkette soll in ein Objekt konvertiert werden, das einen Messwert mit Datum Uhrzeit darstellt. Die Klasse für den Messwert ist wie folgt definiert:

Code:
public class CL_TempValue{

private Calendar timestamp;
private double temperature;

public CL_TempValue(Calendar timestamp, double temperature){

this.timestamp = timestamp;
this.temperature = temperature;
}

public Calendar getTimestamp(){
return timestamp;
}

public double getTemperature(){
return temperature;
}
}

Das Interface IF_Convertor enthält die Methode:
public CL_TempValue Convert (String str).
Die Methode konvertiert die Zeichenkette in das entsprechende Objekt. Das Format der Zeichenkette ist wie folgt:
JJJJ-MM-TT HH:MM:SS;TTTT, T Messwert eines Sensors (ohne führende Nullen!)
JJJJ-MM-TT HH:MM:SS,-- falls kein Messwert vom Sensor erhalten wurde

JJ-MM-TT HH:MM:SS ist das Jahr(JJJJ), Monat(MM), Tag(TT), Stunde(HH), Minute (MM) und Sekunde(SS), immer mit führenden Nullen.
TTTT,T bedeutet, dass die Temperatur maximal 4 Vorkomma- und 1 Nachkommastelle hat.
Beispiele:
2014-01-17 12:10:00:-7,2
2014-01-11 08:01:20:01;--
2014-12-24 01:00:23;-13,6

Erstellen Sie eine Implementierung des Interfac IF_Convertor.
Hinweise: Verewnden Sie die folgenden statischen Methoden
- Umwandlung der Zeichenkette TTTT,T in ein double
Double.parseDouble(String str)
-Umwandlung Zeichenketter JJJJ-MM-TT in ein Calendar Objekt:
Calendar CL_Aux.getCalendarObjectDay(String str)
-Umwandlung Zeichenkette HH:MM:SS in ein Calendar Objekt:
Calendar CL_AUX.getCalendarObjectTime(String str)
-Umwandlung zweier Calendar-Objekte (Tag und Uhrzeit) in ein Calendar-Objekt, das einen Zeitstempel entspricht:
Calendar CL_AUX.getCalendarTimestamp (Calendar day, Calendar time);
Hinweis: Verwenden Sie die split (String separator) Methode der Klasse String.



Okay, ich verstehe null - womit fange ich jetzt an?
Datei einlesen und String bei ":" splitten und das dann über die Methoden ausgeben?
Edit:
Oder muss ich bereits mit try catch anfangen?
 
Zuletzt bearbeitet:

Joose

Top Contributor
Anscheinend sind die viele Sachen schon vorgegeben, so wie es ausschaut musst du nur eine Klasse schreiben, welche das IF_Convertor Interface implementiert.
In dieser Klasse splittest du den String und rufst die einzelnen vorgegeben Methoden auf (parseDouble, getCalendar.....).

Warum willst du den String bei ":" splitten? Dann würdest du ihn ja genau bei der Uhrzeit splitten. ";" wäre die bessere Wahl.
 

Thisor

Bekanntes Mitglied
ErsterVersuch Methode 1:
Code:
public class Double.parseDouble(String str){

String line = reader.readLine();

while (line != null) {
String[] line = line.split(",");

String messwert = lineParts[1];
Double doubleMesswert = Double.parseDouble(messwert);
 

Joose

Top Contributor
Du musst unsere Beiträge und die Angaben genauer lesen :)
Außerdem fehlen dir auch noch Grundlagen, diese solltest du dir aneignen.

Du splittest bei "," ich habe oben geschrieben du solltest mal ";" versuchen.

Java:
public class Double.parseDouble(String str){
Schreibst du nun eine Klasse oder willst du eine Methode schreiben?
Außerdem musst du die Methode "parseDouble" nicht schreiben, diese existiert im Java Framework schon.
Auch die "CL_AUX.getCalendar...." existieren wahrscheinlich schon und sollen von dir nur verwendet werden.

Java:
String line = reader.readLine();
while (line != null) {
String[] line = line.split(",");
Gut das eine Zeile wird einglesen, aber du definierst hier eine String Variable "line" und in der Schleife auch eine String[] Variable "line".
Du kannst nicht 2 Variablen mit den gleichen Namen deklarieren (innerhalb desselben Scope).

Java:
String messwert = lineParts[1];
Wo kommt die Variable "lineParts" her?
 

Thisor

Bekanntes Mitglied
Gut, wie ich die Methode schreibe, werde ich gleich nochmal versuchen. Aber was ist mein allererster Schritt was ich tun muss? Das verstehe ich nicht, wie muss der Methodenkopf aussehen? :confused:
 

Neue Themen


Oben