| 

.NET C# Java Javascript Exception

2
Servus Leute,

ich möchte eine Textausgabe mit Variablen ergänzen.
Wie kann ich folgende Textausgabe machen?
int zahl = 5;
double zahl2 = 2.5;
System.out.Println("Beispieltext, zahl, zahl2!");
Wie bekomme ich die Variablen in die Ausgabe?

Thx
News:
12.10.2009
Sammy 43 1 1 4
5 Antworten
7
mit

int zahl = 5;
double zahl2 = 2.5;
System.out.println(String.format("Beispieltext, %d, %.2f!", zahl, zahl2));


Das hat gegenüber der Stringkonkatenation mit "+" diverse Vorteile: Bei Internationalisierung muss man nur einen String pro message in der Properties-Datei ablegen, die Formatierungsmöglichkeiten sind sehr umfangreich (inkl. Padding mit Leer- oder anderen Zeichen und Rundung), es wird dokumentiert, dass man die Variable als bestimmten Typ ausgeben will (%d -> decimal, %f -> float etc), es ist eine sehr gängige Art der Formatierung, die es z.B. schon bei C und Perl gibt etc. etc.

Für kompliziertere Dinge gibt es dann noch java.util.Formatter (s. Javadoc)
13.10.2009
fenchurch 611 6
1
ah gefällt mir am Besten! Danke
Sammy 13.10.2009
3
mit
int zahl = 5;
double zahl2 = 2.5;
System.out.println("Beispieltext, " + zahl + ", " + zahl2 + "!");
12.10.2009
Vayu 656 1 3
Vayu 656 1 3
3
Zur Abwechslung mal etwas umständlicher :>

StringBuffer sb = new StringBuffer("Beispieltext, ");
sb.append(zahl1);
sb.append(", ");
sb.append(zahl2);
sb.append("!");
System.out.println(sb.toString());

PS: StringBuffer bringen mehr Performance wenn ein Objekt nur abgeändert werden soll, da ein String unveränderlich ist und daher erst ein neues Objekt erstellt wird.
13.10.2009
toko 89 1 2
toko 89 1 2
5
Schöne sache, aber die JVMs ab Version 1.3 machen das alle schon intern. Das ist nur noch bei schleifen interessant, aber dann doch bitte mit dem nicht synchronisierten StringBuilder, denn dann bringt dann noch mehr Performance.
keinhaar 13.10.2009
2
Interessant, wusste ich noch nicht! Bin so weit aber auch noch nie mit der Optimierung gekommen ;)

Weiss zufällig jemand ob das auch Optimierer für Java ME schon können? (z.B. Proguard)
toko 14.10.2009
2
Hallo Sammy,

du könntest es so machen:

int zahl = 5;
double zahl2 = 2.5;
System.out.println("Beispieltext, " + zahl + ", " + zahl2 + "!"
);

Viele Grüße
kernkraft
12.10.2009
kernkraft 144 2
1
oder noch einfacher mit
int zahl = 5;
double zahl2 = 2.5;
System.out.printf("Beispieltext %d %.2f\n", zahl, zahl2);
13.10.2009
keinhaar 210 2 6
1
was soll das Ausrufezeichen nach "zahl2"?
clonejo 15.10.2009
1
copy&paste fehler. habs weggenommen
keinhaar 16.10.2009

Stelle deine Java-Frage jetzt!