[Java] Ausgabe eines Strings

Helios co.

Lt. Commander
Registriert
März 2005
Beiträge
1.863
Hallo,

mir ist bereits häufuger beim Arbeiten mit Strings etwas komisches aufgefallen, was ich so nicht ganz verstehe.
Und zwar, wenn ich z.B. eine Methode habe, in der folgendes geschieht:

public String toString(String ausgabe){
String a = (cal.get(Calendar.HOUR)+":"+cal.get(Calendar.MINUTE)+":"+cal.get(Calendar.SECOND));
return a;
}

Diese Methode steht in einer separaten Klasse, auf die ich dann von einer anderen Klasse (Main) zugreifen möchte.
Wenn ich nun hier den String a ausgeben mächte (mittels System.out.println) kriege ich nur den Hexwert...

Meine Fragen sind nun, warum geschieht das...denn es ist meines erachtens nicht auf dem ersten Blick ersichtlich warum dem so ist und die andere frage die ich habe, ist: wie kann ich das umgehen, bzw wieder umkonvertieren..durch parsen???


Freue mich über jeden Rat!!
 
AW: Java Ausgabe eines Strings

Wie ist die get-Funktion der Klasseninstanz cal implementiert?
 
AW: Java Ausgabe eines Strings

Ich bin mir nicht ganz sicher was du meinst.

cal ist vom Typ GregorianCalendar
Die Werte (Stunden, Minuten,Sekunden) habe ich mittels:

cal.set(Calendar.HOUR, stunden);
cal.set(Calendar.MINUTE, minuten);
cal.set(Calendar.SECOND, sekunden);

eingefügt.

set und get sind somit von Haus aus implementiert.
Wie genau das aussieht müsste ich somit ib der API nachschauen.

Aber wie gesagt, ich bin mir nicht sicher ob es das ist was du wissen wolltest.
 
probier mal eine der 2 Varianten:
Code:
public String toString(String ausgabe)
{
	String a = (((int)cal.get(Calendar.HOUR))+":"+((int)cal.get(Calendar.MINUTE))+":"+((int)cal.get(Calendar.SECOND)));
	return a;
}
Code:
public String toString(String ausgabe)
{
	String a = (Integer.toString(cal.get(Calendar.HOUR))+":"+Integer.toString(cal.get(Calendar.MINUTE))+":"+(Integer.toString(cal.get(Calendar.SECOND)));
	return a;
}
bzw. poste mal wie du den String ausgibst :rolleyes:
 
Beide Varianten führen zum Selben Ergebnis, wie ich es auch schon hatte.
Ausgeben tue ich den String in der Main Klasse:

public static void main(String[] args) {

Zeit zeit = new Zeit();
System.out.println(zeit.toString());
}
 
Also die Klasse "Zeit" stammt von dir selbst?

Dann musst du natürlich auch eine Methode toString() schreiben, damit das überhaupt funktioniert.

Edit: Deine toString-Methode von oben hat die falsche Signatur. (nimm das "String augabe" raus)
 
Zuletzt bearbeitet:
Hi,
die Methode, die du geschrieben hast hat diese Signatur:
public String toString(String ausgabe)
Du rufst aber die Methode public String toString() von java.lang.Object ohne Parameter auf.
Deine Methode funktioniert zwar, allerdings solltest du vielleicht einen Namen wählen, der nicht so leicht zu verwechseln ist.
Übrigens ist die Ausgabe, die du hattest kein Hexcode sondern die interne ID des
Objekts auf dem du toString() aufrufst. Wenn du also auf den Parameter deiner Methode verzichtest bekommst du die gewünschte Ausgabe.
Gruß,
stengbiegel
 
@ jo:
Yap, die klasse zeit stammt von mir selbst.

@ stengbiegel:
Danke für den Tip, hat gefunzt!!
:D

ThX und MfG
Andi
 
Zurück
Oben