关于MessageFormat.format()的注意事项

以下仅是我自己的看法

关于MessageFormat的详细解释可以查看源码

String.formt()主要可以用于格式化字符串以及占位

MessageFormat.format()主要用于占位,是个字符模板

关于两者的区别没有仔细研究,个人感觉MessageFormat是一个专门的字符模板。

首先:MessageFormat类只有一个静态方法MessageFormat.format(String pattern, Object... arguments),当然也可以自己实例化一个进行自己定义。

第一个参数一般填写MessageFormat提供好的格式,第二个参数是一个可变数组,填写将要放置到原先占位的值

MessageFormat提供的格式有三种:

1、 { <i>ArgumentIndex</i> }
2、 { <i>ArgumentIndex</i> , <i>FormatType</i> }
3、 { <i>ArgumentIndex</i> , <i>FormatType</i> , <i>FormatStyle</i> }

第一个参数是索引,目的是在同一句话中达到多处占位,第二个参数是类型,用于解释将要被占位内容进行类型限制 ,第三个参数是样式,用于对内容的格式进行限制

//===================================

第二个参数有以下可选类型

  java.util.Locale
  Format
  NumberFormat
  DecimalFormat
  DecimalFormatSymbols
  ChoiceFormat
  DateFormat
  SimpleDateFormat

部分具体参数有:

number

currency

percent

integer

choice

date

time

//==================================这地方有点没理解清楚



下面是部分内容解释:

1、用  {  表示开始 , 用  }  表示结束

2、数字代表索引,从0开始,此解释仅代表第一个参数

3、0代表数值,若没有则以0表示

4、#代表数值

5、.代表限制符 一般和0以及#合用

6、半角单引号'代表后面的正则表达式忽略 ,进行原样输出 ,倘若有两个则中间的内容忽略,进行原样输出 ,多个单引号则依此规则

注意事项:

1、不要单独使用左大括号{  ,会出异常。如果要显示可以用‘来进行过滤

2、模板格式要正确

下面是举例说明

String ms = MessageFormat.format("{0,number,#.##}", 3.656);

若格式不匹配则报异常  如第二个参数限制为数值  但内容为 String


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值