最近接到一个需求,需要将几百个字中的某些位置的值做成可读取数据库实时配置的数据。
想法一:通过StringBuilder进行字符串拼接,将变量进行拼接。这样简单直观,但是就是不够灵活。
想法二:通过特殊字符,然后通过replace方法进行值的替换。这样相当于有多少个值就好执行多少次replace方法。
想法三:通过MessageFormat类来对进行占位符替换。
示例代码:
- MessageFormat messageFormat = new MessageFormat("您好,你的短信验证码是{0},{1}分钟内有效!");
- Object[] format = new Object[]{"666666",999};
- System.out.println(messageFormat.format(format));
结果:

问题描述,当替换传入的值是大于等于1000的时候就会出现逗号,如下。

想要解决这个问题,我们只要将大于等于1000的数值类型换成字符串进行占位符替换即可。

这样子,问题就解决了。。。