MessageFormat und Zahlenformatierung

sepan

Grünschnabel
Hallo,

ich habe folgendes Problem.
Ich formatiere die Meldungen eines Programms mit MessageFormat.format(). Das Ausgabeformat ist hierbei über die Locale.getDefault() (also laut Systemeinstellung) definiert.
Ich habe aber jetzt die Anforderung vom Kunden erhalten, dass Zahlen vom Typ Integer/Long keine 1000er-Punkte haben dürfen (z.B. bei IDs).
Das heisst, die Ausgabe von
Code:
MessageFormat.format("Datensatz-ID: {0}", 123456789L)
soll nicht
Code:
Datensatz-ID: 123.456.789
sein, sondern:
Code:
Datensatz-ID: 123456789

Bei Double (und nur hier) soll der 1000er-Punkt jedoch gesetzt sein, also mit
Code:
MessageFormat.format("Aktuelles Gewicht: {0}", 12345.67);
soll nach wie vor:
Code:
Aktuelles Gewicht: 12.345,67
ergeben.
Ich kann die Parameter der MessageFormat aber nicht als String übergeben (wäre sonst enormer Änderungsaufwand).

Hat jemand eine Idee?
 
Hallo,

warum nicht einfach so?
Java:
System.out.println(MessageFormat
                .format("Datensatz-ID: {0}", String.valueOf(123456789)));

Gruß Tom
 

Neue Beiträge

Zurück