Format可能存在的坑

时间:2023-03-09 12:59:55
Format可能存在的坑
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[] { , , }); 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成*,***,***格式,如果是字符串就直接替换。