import java.text.MessageFormat; public class TestFormat { public static void main(String[] args) { // TODO Auto-generated method stub String str = MessageFormat.format("/status={0}&app={1}&version={2}", new Object[] { 123, 1234, 12345 }); System.out.println(str);
String str = MessageFormat.format("/status={0}&app={1}&version={2}", new Object[] { "123", "1234", "12345" });
System.out.println(str2); } }
你觉得这两个产生的结果是不是一样?其实不一样!!
/status=123&app=1,234&version=12,345
/status=123&app=1234&version=12345
原因:查看源码,MessageFormat.format在底层会判断传入参数的类型,如果是数字类型,会format成*,***,***格式,如果是字符串就直接替换。