雕刻时光

just do it……nothing impossible
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Format可能存在的坑

Posted on 2016-01-30 18:27  huhuuu  阅读(171)  评论(0编辑  收藏  举报
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成*,***,***格式,如果是字符串就直接替换。