MessageFormat与占位符使用

Posted 关键步就几步

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MessageFormat与占位符使用相关的知识,希望对你有一定的参考价值。

占位符替换,花括号中为索引占位,对应可变参数后面的值

String pattern = "ErrorMessage=This is Error Message : {0},{1}";
String returnStr = MessageFormat.format(pattern, "error","xxxx");
System.out.println(returnStr);

而且其比C#的String.format功能还强一些,可以占位并格式化数值,如:

double num = 1.234;
String str = MessageFormat.format("Format Number: {0,number,#.##} .", num);
System.out.println(str);

注意点:

1. 两个单引号才表示一个单引号,仅写一个单引号将被忽略。

2. 单引号会使其后面的占位符均失效,导致直接输出占位符。  

MessageFormat.format("{0}{1}", 1, 2); // 结果12
MessageFormat.format("‘{0}{1}", 1, 2); // 结果{0}{1}
MessageFormat.format("‘{0}‘{1}", 1, 2); // 结果{0}2
MessageFormat.format("‘{‘{0}", 2); // 结果{2

3. 如果传入多个参数,但实际需要替换的占位符没有那么多,程序并不会报错。  

MessageFormat.format("First:{0},Second:{1},third.", 1,2,3);

  

 

以上是关于MessageFormat与占位符使用的主要内容,如果未能解决你的问题,请参考以下文章

占位符

Java占位符

用动态数据替换占位符

Java输出格式化之占位符

布局中的片段占位符

javaWEB国际化:DateFormat,NumberFormat,MessageFormat,ResourceBundle的使用