1.简单的测试:
System.out.println(String.format("哈哈%s,你好%s,测试中%s", "嘿嘿","张三","。。。"));
System.out.println(MessageFormat.format("哈哈{0},你好{1},测试中{2}", "嘿嘿","张三","。。。"));
2.输出结果和花费时间毫秒:
哈哈嘿嘿,你好张三,测试中。。。
61
哈哈嘿嘿,你好张三,测试中。。。
2
可以看出MessageFormat.format的速度明显快很多
3.占位符个数大于后面的数组时:
System.out.println(String.format("哈哈%s,你好%s,测试中%s%s", "嘿嘿","张三","。。。"));
输出结果:Exception in thread "main" java.util.MissingFormatArgumentException: Format specifier '%s'
System.out.println(MessageFormat.format("哈哈{0},你好{1},测试中{2}{3}", "嘿嘿","张三","。。。"));
输出结果:哈哈嘿嘿,你好张三,测试中。。。{3}
4.占位符个数小于后面的数组时:
System.out.println(String.format("哈哈%s,你好%s,测试中", "嘿嘿","张三","。。。"));
输出结果:哈哈嘿嘿,你好张三,测试中
System.out.println(MessageFormat.format("哈哈{0},你好{1},测试中", "嘿嘿","张三","。。。"));
输出结果:哈哈嘿嘿,你好张三,测试中
二者都正常输出,没报错。