在jdk1.5中MessageFormat.format和String.format之间的区别?
JDK 1.5中的MessageFormat.format
和String.format
什么区别?
简而言之,主要区别在于格式string:
-
MessageFormat.format()
格式的string接受参数位置(例如。{0}
,{1}
)。 例:"This is year {0}!"
开发人员不必担心参数types,因为它们通常是根据当前
Locale
识别和格式化的。 -
String.format()
格式的string接受参数types说明符(例如%d
表示数字,%s
表示string)。 例:"This is year %d!"
String.format()
通常使您可以更多地控制参数的显示方式,这要归功于您可以使用types说明符指定的许多选项。 例如,格式string"%-6.2f"
指定用min显示一个左alignment的浮点数。 宽度为6个字符,精度为2位小数。
只要看看这两种方法的javadoc来了解更多细节。
String.format只是Formatter的快捷方式,这是一个“printf样式”的格式化程序。 另一方面, MessageFormat使用不同的格式约定,如链接文档中所述。
使用第一个“用于布局alignment和alignment,数字,string和date/时间数据以及特定 于语言 环境的输出的常用格式” ,第二个“以与语言无关的方式生成连接的消息” 。