MessageFormat提供一种语言无关的方式来组装消息,它允许你在运行时刻用指定的参数来替换掉消息字符串中的一部分。你可以为MessageFormat定义一个模式,在其中你可以用占位符来表示变化的部分,例如在下面的测试类中:
package cn.lz.life.util;
import java.text.MessageFormat;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Demo {
protected static final Logger log = LoggerFactory.getLogger(Demo.class.getName());
private MessageFormat format;
public Demo(String placeholder) {
super();
this.format = new MessageFormat(placeholder);//包含占位符的字符串
}
public void getStrMsg(String ...strMsg) {
log.info(format.format(strMsg));//格式化占位符中的内容到目标字符串
}
}
注意format()方法的参数必须是数组
和
package cn.lz.life.util;
public class Test {
public static void main(String[] args) {
Demo demo = new Demo("你好:{0}{1}!") ;//包含占位符的目标字符串
String[] strs = {"某人!", "你是谁"};//占位符中的内容
demo.getStrMsg(strs);
}
}
控制台中打印:
17:31:38.388 [main] INFO cn.lz.life.util.Demo - 你好:某人!你是谁!