Was ist der Unterschied zwischen MessageFormat.format
und String.format
in JDK 1.5?
quelle
Was ist der Unterschied zwischen MessageFormat.format
und String.format
in JDK 1.5?
Einfach ausgedrückt liegt der Hauptunterschied in der Formatzeichenfolge:
MessageFormat.format()
Format - String - Argument nimmt Positionen (zB. {0}
, {1}
). Beispiel:
"This is year {0}!"
Der Entwickler muss sich nicht um Argumenttypen kümmern, da diese meistens nach dem aktuellen Stand erkannt und formatiert werden Locale
.
String.format()
format string akzeptiert Argumenttypbezeichner (z. B. %d
für Zahlen, %s
für Zeichenfolgen). Beispiel:
"This is year %d!"
String.format()
Im Allgemeinen haben Sie dank vieler Optionen, die Sie mit dem Typbezeichner angeben können, viel mehr Kontrolle darüber, wie das Argument angezeigt wird. Beispielsweise "%-6.2f"
gibt die Formatzeichenfolge an, dass eine linksbündige Gleitkommazahl mit min angezeigt werden soll. Breite 6 Zeichen und Genauigkeit von 2 Dezimalstellen.
Schauen Sie sich einfach javadoc beider Methoden an, um mehr Details zu erfahren.
String.format ist nur eine Verknüpfung zu Formatter . Dies ist ein Formatierer im "printf-Stil". Auf der anderen Seite verwendet MessageFormat eine andere Formatierungskonvention, wie in der verknüpften Dokumentation beschrieben.
Verwenden Sie das erste "zur Ausrichtung und Ausrichtung des Layouts, allgemeine Formate für numerische Daten, Zeichenfolgen und Datums- / Zeitdaten sowie die länderspezifische Ausgabe" und das zweite "zur Erzeugung verketteter Nachrichten auf sprachneutrale Weise" .
quelle