您的位置:首页 > 其它

Format可能存在的坑

2016-01-30 18:27 197 查看
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成*,***,***格式,如果是字符串就直接替换。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: