亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

Java中的MessageFormat.format用法實例

2019-11-26 15:10:00
字體:
來源:轉載
供稿:網友

MessageFormat本身與語言環境無關,而與用戶提供給MessageFormat的模式和用于已插入參數的子格式模式有關,以生成適用于不同語言環境的消息。

MessageFormat模式(主要部分):

復制代碼 代碼如下:

FormatElement:
         { ArgumentIndex }:是從0開始的入參位置索引。
         { ArgumentIndex , FormatType }
         { ArgumentIndex , FormatType , FormatStyle }
 
 FormatType: :指定使用不同的Format子類對入參進行格式化處理。值范圍如下:
         number:調用NumberFormat進行格式化
         date:調用DateFormat進行格式化
         time:調用DateFormat進行格式化
         choice:調用ChoiceFormat進行格式化
 
 FormatStyle::設置FormatType中使用的格式化樣式。值范圍如下:
         short
         medium
         long
         full
         integer
         currency
         percent
         SubformatPattern (子格式模式,形如#.##)

還以str為例,在這個字符串中:
1、{0}和{1,number,short}和{2,number,#.#};都屬于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的數字組成,因此可以有好多個,如:

復制代碼 代碼如下:

String msg = "{0}{1}{2}{3}{4}{5}{6}{7}{8}"; 
Object [] array = new Object[]{"A","B","C","D","E","F","G","H","I",};        
String value = MessageFormat.format(msg, array); 
 
System.out.println(value);  // 輸出:ABCDEFGHI 

2、格式化字符串時,兩個單引號才表示一個單引號,單個單引號會被省略,除非中文單引號不會被省略,如:

復制代碼 代碼如下:

String value = MessageFormat.format("oh, {0} is 'a' pig", "ZhangSan"); 
 
System.out.println(value);  // 輸出:oh, ZhangSan is a pig 

給字母a加上單引號,如:

復制代碼 代碼如下:

String value = MessageFormat.format("oh, {0} is ''a'' pig", "ZhangSan");

System.out.println(value);  // 輸出:oh, ZhangSan is '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

使用雙引號和兩個單引號沒有關系,比如
復制代碼 代碼如下:

String value = MessageFormat.format("oh, ''{0}'' is a pig", "ZhangSan");

System.out.println(value);  // 輸出:oh, 'ZhangSan' is a pig

又比如,使用子格式模式,多了一個單引號:

復制代碼 代碼如下:

String value = MessageFormat.format("oh, {0,number,#.#} is good num", Double.valueOf("3.1415"));

System.out.println(value);  // 輸出:oh, 3.1 is good num


3、無論是有引號字符串還是無引號字符串,左花括號都是不支持的,如:
復制代碼 代碼如下:

String value = MessageFormat.format("oh, } is good num", Double.valueOf("3.1415"));

System.out.println(value);  // 輸出:oh, } is good num


如果使用左花括號會出現異常
復制代碼 代碼如下:

String value = MessageFormat.format("oh, { is good num", Double.valueOf("3.1415"));

System.out.println(value);  // java.lang.IllegalArgumentException: Unmatched braces in the pattern.


因此要使用到左花括號需要使用單引號配合使用
MessageFormat.format("'{'{0}}", "X-rapido"); // {X-rapido}
還有一個有趣的現象,如果出現兩個或2個以上左花括號,就會出現分割字符串,但是右花括號就沒問題,雖然沒有任何意義,實際應用我們也用不到
復制代碼 代碼如下:

String value = MessageFormat.format("oh, {{ is good num", "d");

System.out.println(value);  // oh,


復制代碼 代碼如下:

String value = MessageFormat.format("oh, }} is good num", "d");

System.out.println(value);  // oh, }} is good num

關于MessageFormat.format方法:
每調用一次MessageFormat.format方法,都會新創建MessageFormat的一個實例,相當于MessageFormat只使用了一次。MessageFormat類的format方法如下:

復制代碼 代碼如下:

public static String format(String pattern, Object ... arguments)  

    MessageFormat temp = new MessageFormat(pattern); 
    return temp.format(arguments); 

  因此若要多次格式同一個模式的字符串,那么創建一個MessageFormat實例在執行格式化操作比較好些

復制代碼 代碼如下:

String message = "oh, {0} is a pig"; 
MessageFormat messageFormat = new MessageFormat(message); 
Object[] array = new Object[]{"ZhangSan"}; 
String value = messageFormat.format(array); 
 
System.out.println(value);

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美在线影院在线视频| 国产91对白在线播放| 日韩中文有码在线视频| 久久视频这里只有精品| 欧美午夜无遮挡| 国产精品极品在线| 成人黄色av免费在线观看| 在线观看免费高清视频97| 91手机视频在线观看| 亚洲欧美在线第一页| 欧美日韩中文字幕日韩欧美| 日韩欧美一区二区三区久久| 尤物九九久久国产精品的特点| 性欧美亚洲xxxx乳在线观看| 琪琪亚洲精品午夜在线| 精品欧美国产一区二区三区| 自拍亚洲一区欧美另类| 国内精品视频一区| 欧美视频中文字幕在线| 亚洲国产精品国自产拍av秋霞| 久久久精品国产亚洲| 国产精品视频久| 欧美在线视频免费| 久久久视频在线| 欧洲永久精品大片ww免费漫画| 精品视频在线播放免| 国产精品www网站| 亚洲日本欧美日韩高观看| 国产成人精品免费视频| 成人激情电影一区二区| 夜夜嗨av一区二区三区免费区| 日本成人黄色片| 亚洲一区二区三区xxx视频| 国产精品第10页| 国产精品日韩电影| 国产在线视频欧美| 国产精品18久久久久久首页狼| 91在线直播亚洲| 亚洲第一网站免费视频| 国产伊人精品在线| 91青草视频久久| 国产丝袜一区二区三区| 欧美极品欧美精品欧美视频| 国产精品女主播| 亚洲欧美国产高清va在线播| 日韩在线视频播放| 久久久久国产精品一区| 欧洲精品久久久| 亚洲精品xxx| 日韩美女在线播放| 久久久久久久久久久成人| 日韩中文综合网| 亚州欧美日韩中文视频| 亚洲欧美激情视频| 亚洲国产精品久久久久秋霞蜜臀| 亚洲深夜福利网站| 午夜精品一区二区三区在线视| 久久久国产精品免费| 亚洲人成网站免费播放| 北条麻妃久久精品| 亚洲国产美女久久久久| 色妞在线综合亚洲欧美| 国产这里只有精品| 国产69精品99久久久久久宅男| 日韩av最新在线观看| 欧美性色xo影院| 91网站免费观看| 精品久久久久久久久久久久久久| 欲色天天网综合久久| 欧美黑人xxxⅹ高潮交| 亚洲精品大尺度| 国产精品免费久久久| 6080yy精品一区二区三区| 亚洲午夜激情免费视频| 日韩在线视频一区| 91社影院在线观看| 久久99精品久久久久久琪琪| 亚洲欧美第一页| 色偷偷av一区二区三区| 久久视频免费观看| 国产精品久久久久久一区二区| 国产精品尤物福利片在线观看| 精品福利在线视频| 亚洲xxx自由成熟| 国产成人福利夜色影视| 色综合91久久精品中文字幕| 26uuu日韩精品一区二区| 啊v视频在线一区二区三区| 欧美激情第一页xxx| 久久精品国产一区| 国产极品精品在线观看| 亚洲欧美日韩精品久久| 日韩精品丝袜在线| 国产午夜精品一区理论片飘花| 久久精品国产96久久久香蕉| 91高清在线免费观看| 国产91在线播放九色快色| 欧美在线免费观看| 久久天堂电影网| 日韩在线视频网| 亚洲欧美综合区自拍另类| 中文字幕亚洲欧美一区二区三区| 久热爱精品视频线路一| 久久91亚洲精品中文字幕| 日韩中文在线视频| 欧美亚洲国产日韩2020| 国产精品久久久久久久久借妻| 久久亚洲精品视频| 亚洲欧美日韩精品| 久久成人一区二区| 日本精品在线视频| 国产精品嫩草影院久久久| 亚洲性xxxx| www.欧美免费| 亚洲国产欧美一区二区丝袜黑人| 久久久久北条麻妃免费看| 成人激情av在线| 久久精品亚洲国产| 日韩视频在线一区| 91精品美女在线| 国产午夜精品全部视频播放| 日韩国产高清视频在线| 国产精品欧美日韩久久| 欧美午夜精品久久久久久久| 久久精品最新地址| 91精品国产乱码久久久久久久久| 久久精品一本久久99精品| 色妞在线综合亚洲欧美| 亚洲成av人乱码色午夜| 久久成人一区二区| 国产ts人妖一区二区三区| 欧美亚洲国产日韩2020| 亚洲国产成人av在线| 国产精品久久久久久亚洲调教| 日韩中文视频免费在线观看| 亚洲视频视频在线| 97视频在线播放| 日韩在线观看免费av| 日韩精品极品视频免费观看| 欧美一区二区三区免费视| 欧美成人精品影院| 国产精品羞羞答答| 国产一区二区色| 热久久免费视频精品| www.日韩欧美| 欧美日韩亚洲激情| 中文字幕精品久久久久| 国产在线视频不卡| 97视频免费在线看| 日韩一区二区精品视频| 久久深夜福利免费观看| 午夜欧美大片免费观看| 色阁综合伊人av| 国产精品视频播放| 久久久久久久久中文字幕| 日韩av片电影专区| 日韩电影中文字幕| 96精品视频在线| 欧美一级淫片aaaaaaa视频| 91av国产在线| 欧美大奶子在线| 国产成人精品在线视频| 国产亚洲精品日韩| 国产精品海角社区在线观看|