MessageFormat.format的使用

本文详细介绍了MessageFormat.format的使用方法,包括ArgumentIndex的索引规则、FormatType和FormatStyle的选择,以及实例演示。通过实例展示如何生成定制化的消息,适合跨语言环境的格式化需求。
摘要由CSDN通过智能技术生成

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 选定整个文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值