MessageFormat.format的使用
MessageFormat.format是根据顺序和占位符来对应插入的,以生成适用于不同语言环境的消息;
MessageFormat模式(主要部分)
FormatElement
{ArgumentIndex}:是从0开始的入参位置索引
{Argument Index,FormatType}
{ArgumentIndex,FormatType,FormatStype}
FormatType:指定使用不同的Format子类对入参进行格式化处理。值范围如下:
number:调用DateFormat进行格式化
time:调用DateFormat进行格式化
choice:调用ChoiceFormat进行格式化
FormatStyle:设置FormatType中使用的格式化样式。值范围如下:
short、medium、long、full、integer、currency、percent、SubformatPattern(子格式模式,形如#.##)还以str为例,在这个字符串中:
1. {0}和{1,number,short}和{2,short,#.#};都属于FormatElement,0,1,2是ArgumentIndex。
2. {1,number,short}里面的number属于FormatType,short属于FormatStyle;
3.{1,number,#.#}里面的#.#就属于子格式模式。
指定FormatType和FormatStyle是为了生成日期格式的值、不同精度的数字、百分比类型等等。
实例:
1、ArgumentIndex必须是非负整数,它的个数不只限于0到9这10个,它可以用0到9的数字组成,因此可以有好多个,如:
public static void main(String[] args){
String a = "111";
String b = "222";
String c = "333";
String msg =MessageFormat.format("{0},{1},{2}",a,b,c);
sout.(msg);
}//所以以上的打印结果为:111,222,333;
2、格式化字符串时,两个单引号才表示一个单引号,单个单引号会被省略,除非中文单引号不会被省略,如:
String msg= MessageFormat.format(" {0} is a pig", "ZhouLan");
System.out.println(msg); // 输出: ZhouLan is a pig
给字母a加上单引号,如:
String msg= MessageFormat.format("oh, {0} is a pig", "ZhouLan");
System.out.println(msg); // 输出:oh, ZhouLanis a pig
如果需要显示双引号要进行转移,比如:String msg = "oh, {0} is "a" pig";
3、单引号会使其后面的占位符均失效,导致直接输出占位符。
MessageFormat.format("{0}{1}", 1, 2); // 结果12
MessageFormat.format("{0}{1}", 1, 2); // 结果{0}{1}
MessageFormat.format("{0}-{1}", 1, 2); // 结果{0}-2
使用键盘选中文字:
Shift +↑ 向上选定一行
Shift +↓ 向下选定一行
Shift + ← 向左选定1个字符
Shift + → 向右选定1个字符
Shift + Ctrl +↑ 选定内容扩展至段落首
Shift + Crtl +↓ 选定内容扩展至段落尾
Shift + Crtl + ← 选定内容扩展至单词首
Shift + Crtl + → 选定内容扩展至单词尾
Shift + Home 选定内容扩展至行首
Shift + End 选定内容扩展至行尾
Shift + Ctrl + Home 选定内容扩展文档首
Shift + Crtl + End 选定内容扩展至文档尾
Crtl + A 选定整个文档
