MessageFormat.format
和String.format
JDK 1.5有什么区别?
Answers:
简而言之,主要区别在于格式字符串:
MessageFormat.format()
格式字符串接受参数位置(例如{0}
,{1}
)。例:
"This is year {0}!"
开发人员不必担心参数类型,因为它们通常根据current被识别和格式化Locale
。
String.format()
格式字符串接受参数类型说明符(例如%d
,数字,%s
字符串)。例:
"This is year %d!"
String.format()
由于可以使用类型说明符指定许多选项,因此通常可以使您更好地控制参数的显示方式。例如,格式字符串"%-6.2f"
指定显示带有最小值的左对齐浮点数。宽度为6个字符,精度为2个小数位。
只需查看这两种方法的javadoc即可了解更多详细信息。
String.format只是Formatter的快捷方式,这是“ printf风格”的格式化程序。另一方面,MessageFormat使用另一种格式约定,如链接文档中所述。
使用第一个“用于布局调整和对齐,用于数字,字符串和日期/时间数据的通用格式以及特定于语言环境的输出”,第二个“使用以语言无关的方式生成级联的消息”。