ubuntuusers.de

String.format geht nicht?

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

appleman

Anmeldungsdatum:
1. Januar 2008

Beiträge: 311

Hallo

Hab gerade das jdk 1.4 via Paketverwaltung installiert. Dann hab ich ein paar Progrämmchen ausprobiert, die unter Windows schon liefen.

Doch bei diesem, dass String.format verwendet, scheint irgendwas nicht zu funktioneren, hier die Ausgabe des Compilers:

money.java:40: cannot resolve symbol
symbol : method format (java.lang.String,double)
location: class java.lang.String
Out.println("Betrag in Schilling: " + String.format("%.1f",sum));
^

Was mach ich falsch?

mfg appleman

Moderiert von ditsch:

Ein Fragezeichen im Titel reicht auch.

Pommes

Avatar von Pommes

Anmeldungsdatum:
23. Februar 2008

Beiträge: 53

Ist sum vom Datentyp double? Dann musst du es in Double umwandeln. format erwartet als Parameter "String" und "Object".
Java 1.4 kann noch kein Autoboxing.

appleman

(Themenstarter)

Anmeldungsdatum:
1. Januar 2008

Beiträge: 311

sum ist double.

Pommes

Avatar von Pommes

Anmeldungsdatum:
23. Februar 2008

Beiträge: 53

appleman hat geschrieben:

sum ist double.

Na... dann ist ja dein Problem gelöst 😊

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4694

Wohnort: Berlin

@appleman: Warum so eine alte Java-Version installieren? AFAIK dürfte bei Java 1.6 die Konvertierung automatisch geschehen. Ich vermute mal unter Windows hattest Du 1.6 benutzt!?

appleman

(Themenstarter)

Anmeldungsdatum:
1. Januar 2008

Beiträge: 311

?????

Achso, double und nicht Double!

Ja, und wie mach ich das?

'(Double)sum' oder was?

thx appleman

Pommes

Avatar von Pommes

Anmeldungsdatum:
23. Februar 2008

Beiträge: 53

String.format("%.1f",new Double(sum)));

"double" ist nicht von Typ "Object", "Double" aber schon.
Sämtliche klein geschriebene Datentypen sind nicht vom Typ "Objekt" abgeleitet (= primitive Datentypen: int, double, float, long, boolean, char).

Ab Java 5 (1.5) dürfte dein Code auch ohne Änderung funktionieren, da der Compiler solche Datentypen bei Bedarf in den äquivalenten Objektdatentyp umwandeln kann (⇒ Autoboxing).
Aber in Java 1.4 musst du das selber machen. Die Methode "format" erwartet numal als zweiten Parameter ein Objekt vom Typ "Object", nicht vom Typ "double".

appleman

(Themenstarter)

Anmeldungsdatum:
1. Januar 2008

Beiträge: 311

@Marc 'BlackJack' Rintsch:

Ja, eine gute Frage:

Weil ich's nicht geschafft habe jdk 1.6 zu installieren. Ich habe nicht gedacht dass die Inkompatiblitäten doch so groß sind, drum hab ich einfach 1.4 via ubuntu installiert.

Es kommt nähmlich folgende Fehlermeldung:

Fehler: Failed dependencies:
/bin/basename is needed by jdk-1.6.0_02-fcs.i586
/bin/cat is needed by jdk-1.6.0_02-fcs.i586
/bin/cp is needed by jdk-1.6.0_02-fcs.i586
/bin/gawk is needed by jdk-1.6.0_02-fcs.i586
/bin/grep is needed by jdk-1.6.0_02-fcs.i586
/bin/ln is needed by jdk-1.6.0_02-fcs.i586
/bin/ls is needed by jdk-1.6.0_02-fcs.i586
/bin/mkdir is needed by jdk-1.6.0_02-fcs.i586
/bin/mv is needed by jdk-1.6.0_02-fcs.i586
/bin/pwd is needed by jdk-1.6.0_02-fcs.i586
/bin/rm is needed by jdk-1.6.0_02-fcs.i586
/bin/sed is needed by jdk-1.6.0_02-fcs.i586
/bin/sort is needed by jdk-1.6.0_02-fcs.i586
/bin/touch is needed by jdk-1.6.0_02-fcs.i586
/usr/bin/cut is needed by jdk-1.6.0_02-fcs.i586
/usr/bin/dirname is needed by jdk-1.6.0_02-fcs.i586
/usr/bin/expr is needed by jdk-1.6.0_02-fcs.i586
/usr/bin/find is needed by jdk-1.6.0_02-fcs.i586
/usr/bin/tail is needed by jdk-1.6.0_02-fcs.i586
/usr/bin/tr is needed by jdk-1.6.0_02-fcs.i586
/usr/bin/wc is needed by jdk-1.6.0_02-fcs.i586
/bin/sh is needed by jdk-1.6.0_02-fcs.i586

Aber all diese Dateien gehören (so wie ich das sehe) ganz elementar zum System und sind natürlich vorhanden!?

Vielleicht ist es klüger in dieser Richting weiter zu suchen anstatt alle 1.6er Programme zu ändern.

mfg appleman

Hello_World

Anmeldungsdatum:
13. Juni 2006

Beiträge: 3620

Greebo

Avatar von Greebo

Anmeldungsdatum:
21. November 2006

Beiträge: 3443

Wohnort: 97070 Würzburg

String.format gibt es übrigens erst seit J2SE5, insofern kein Wunder dass er das Symbol nicht kennt 😉

http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#format(java.util.Locale,%20java.lang.String,%20java.lang.Object...)

Pommes

Avatar von Pommes

Anmeldungsdatum:
23. Februar 2008

Beiträge: 53

Greebo hat geschrieben:

String.format gibt es übrigens erst seit J2SE5, insofern kein Wunder dass er das Symbol nicht kennt 😉

http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#format(java.util.Locale,%20java.lang.String,%20java.lang.Object...)

Das ist natürlich ein noch besseres Argument. 😊

Antworten |