java MessageFormat来生成模板字符串
1.前言
在java程序中,我们经常会遇到生成模板字符串的场景,一般来说我们实现需求是这样的
String name = "Bob"; StringBuilder sb = new StringBuilder(); sb.append("您好").append("我是").append(name); System.out.println(sb.toString());//您好我是Bob
2.更好的方法
有一种更好的方法
String helloStr = MessageFormat.format("您好,我是{0}", name); System.out.println(helloStr);//您好,我是Bob
直接使用MessageFormat替换变量即可,和printf方法类似,不用在用StringBuilder无脑拼接字符串,代码也简洁很多.
String helloStr = MessageFormat.format("您好,我是{0},我今年{1,choice,1#一|2#二|{2}}岁", name,1); System.out.println(helloStr);//您好,我是Bob,我今年一岁
而且MessageFormat还提供了格式化选项 choice,可以根据不同的参数选择不同的数据,我{1}的参数设置的是1,所以就选择了一,如果是3就会选择{2}岁,会再次进行替换.
非常方便!