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