在Java类库中,提供了一个MessageFormat的类,用来消息格式化
例如,使用占位符来格式化消息;
@Test
public void test5(){
//{0}等表示占位符,在后面被各个数据替代
String msg=MessageFormat.format("On {2},a {0} destoryed {1} houses and caused {3} of damage", "hurricane",99,new GregorianCalendar(1999,0,1).getTime(),10.0E8);
System.out.println(msg);
//一般,占位数字后面跟着type和style,如下的例子
String msg2=MessageFormat.format("On {2,date,long},a {0} destoryed {1} houses and caused {3,number,currency} of damage", "hurricane",99,new GregorianCalendar(1999,0,1).getTime(),10.0E8);
System.out.println(msg2);
}
当然可以从其构造方法看出,可以国际化的格式消息
从测试代码中,可以看到支持type和style,占位数字后面跟着类型和风格,常用的风格和类型如下
对于这段话,还有些不符合实际的地方,就是当房子的数量为1个是,house必须为单数,故而引出了choice格式