在使用java.text.MessageFormat工具类进行格式化字符串时,应当注意在使用数值型参数替换占位符时,要将数值型参数转换为字符串,否则有可能产生与预期不符的字符串。
- 增加英文逗号 如下示例 id,id2,id3,id4,id5
- 丢失精度 如下示例 id2,id4,id5
public static void main(String[] args){
int id = 123456;
float id2 = 123456.789012F;
long id3 = 123456L;
double id4 = 123456.789012D;
BigDecimal id5 = new BigDecimal("123456.789012");
String key = "id:{0} id2:{1} id3:{2} id4:{3} id5:{4}";
String format = MessageFormat.format(key, id, id2,id3,id4,id5);
String format2 = MessageFormat.format(key, String.valueOf(id), String.valueOf(id2), String.valueOf(id3), String.valueOf(id4), String.valueOf(id5));
System.out.println(format);
System.out.println(format2);
}
输出:
id:123,456 id2:123,456.789 id3:123,456 id4:123,456.789 id5:123,456.789
id:123456 id2:123456.79 id3:123456 id4:123456.789012 id5:123456.789012