占位符国际化

2016-06-19|来源:

如果一个字符串中包含了多个与国际化相关的数据,可以使用MessageFormat类对这些数据进行批量处理。
  例如:At 12:30 pm on jul 3,1998, a hurricance destroyed 99 houses and caused $1000000 of damage
  以上字符串中包含了时间、数字、货币等多个与国际化相关的数据,对于这种字符串,可以使用MessageFormat类对其国际化相关的数据进行批量处理。


MessageFormat 类如何进行批量处理呢?

   1.MessageFormat类允许开发人员用占位符替换掉字符串中的敏感数据(即国际化相关的数据)。
   2.MessageFormat类在格式化输出包含占位符的文本时,messageFormat类可以接收一个参数数组,以替换文本中的每一个占位符。


模式字符串:At {0} on {1},a destroyed {2} houses and caused {3} of damage

字符串中的{0}、{1}、{2}、{3}就是占位符


示例:

@Test
public void testMessageFormat(){
    //模式字符串
    String pattern = "On {0}, a hurricance destroyed {1} houses and caused {2} of damage.";
    //实例化MessageFormat对象,并装载相应的模式字符串
    MessageFormat format = new MessageFormat(pattern, Locale.CHINA);
    Object arr[] = {new Date(), 99, 100000000};
    //格式化模式字符串,参数数组中指定占位符相应的替换对象
    String result = format.format(arr);
    //On 16-6-17 上午12:11, a hurricance destroyed 99 houses and caused 100,000,000 of damage.
    System.out.println(result);
}


占位符的三种书写方式
  {argumentIndex}: 0-9 之间的数字,表示要格式化对象数据在参数数组中的索引号
  {argumentIndex,formatType}: 参数的格式化类型
  {argumentIndex,formatType,FormatStyle}: 格式化的样式,它的值必须是与格式化类型相匹配的合法模式、或表示合法模式的字符串。
@Test
public void testMessageFormat2(){
    //用{0}占位符替换敏感的数据。占位符对应着参数数组的索引
    //具体样式:MessageFormat的API
    String pattern = "At {0,time,short } on {1,date,medium}, a hurricance destroyed 99 houses and caused {2,number,currency} of damage";
    Object params[] = {new Date(),new Date(),1000000};
    MessageFormat mf = new MessageFormat(pattern,Locale.US);
    String s = mf.format(params);//
    System.out.println(s);
}


书生整理于网络


相关问答

更多

spring4 mvc 中使用 JSR-303 Validator ,国际化占位符问题至资源配置问题

Spring配置   人们经常会在一台以上的主机上配置一种Web应用程序。例如,在生产中,一个网站可能只有一个实例。除了此实例外,开发人员可以在用于开发的机器上配置其他的(开发)实例。也可以在公司(机构)内部的本地开发服务器上维护其他应用程序装置,这将让您受益匪浅。该实例的目的是使Web设计者可以获得有质量保证的材料,并为需要为应用程序提供文件资料的人提供准入。   大家都知道,即使是最简单的场景,也需要安装、配置和维护三个实例。而对于位于不同地理位置的团队来说,要从事这样的项目便更加困难。对于任 ...

spring4 mvc 中使用 JSR-303 Validator ,国际化占位符问题至资源配置问题

Spring配置   人们经常会在一台以上的主机上配置一种Web应用程序。例如,在生产中,一个网站可能只有一个实例。除了此实例外,开发人员可以在用于开发的机器上配置其他的(开发)实例。也可以在公司(机构)内部的本地开发服务器上维护其他应用程序装置,这将让您受益匪浅。该实例的目的是使Web设计者可以获得有质量保证的材料,并为需要为应用程序提供文件资料的人提供准入。   大家都知道,即使是最简单的场景,也需要安装、配置和维护三个实例。而对于位于不同地理位置的团队来说,要从事这样的项目便更加困难。对于任 ...

spring4 mvc 中使用 JSR-303 Validator ,国际化占位符问题至资源配置问题

Spring配置 人们经常会在一台以上的主机上配置一种Web应用程序。例如,在生产中,一个网站可能只有一个实例。除了此实例外,开发人员可以在用于开发的机器上配置其他的(开发)实例。也可以在公司(机构)内部的本地开发服务器上维护其他应用程序装置,这将让您受益匪浅。该实例的目的是使Web设计者可以获得有质量保证的材料,并为需要为应用程序提供文件资料的人提供准入。 大家都知道,即使是最简单的场景,也需要安装、配置和维护三个实例。而对于位于不同地理位置的团队来说,要从事这样的项目便更加困难。对于任何不是特 ...

spring国际化的问题。。。急。。。。。。。。??????

在locale中设置。。。但是不是跟跳转同步的要改下哦

java国际化在以后的编程中会经常用吗

对啊,东方黑客联盟有个 java黑马程序员的教程,第一章就是介绍的。你可以看看。还有个电影

专题教程

JAVA概述
第一部分:java入门基础
第二部分:java常用类
第三部分:jdbc系列教程
第四部分:java高级特征
快速入门
Gson教程
快速了解 jdk8 新特征

相关文章

更多

最近更新

更多