20170705 带占位符的字符串 MessageFormat类
2017-07-05 本文已影响31人
houc
参考文献:《Java疯狂讲义》(第三版)
import java.util.*;
import java.text.MessageFormat;
public class HelloArg{
public static void main(String[] args){
//定义一个Locale变量
Locale currentLocale=null;
//如果运行程序指定了两个参数
if(args.length==2){
//使用运行程序的两个参数构造Locale实例
currentLocale =new Locale (args[0],args[1]);
}
else{
//否则直接使用系统默认的Locale
currentLocale = Locale.getDefault(Locale.Category.FORMAT);
}
ResourceBundle bundle=ResourceBundle.getBundle("myMess",currentLocale);
String msg=bundle.getString("msg");
//使用MessageFormat为带占位符的字符串传入参数
System.out.println(MessageFormat.format(msg,"yeeku",new Date()));
}
}
问题:Java程序国际化中,输出一个必须包含动态的内容,例如:这些内容必须
是从程序上获得的。
解决方法:可以使用带占位符的消息。需要使用MessageFormat类。
方法:format(String pattern,Object...values):返回后面的多个参数值填充前面的pattern字符串,其中pattern字符串不是正则表达式,而是一个带占位符的字符串。