2008-09-15 46 views
4

如果我有一個資源包屬性的文件:的ResourceBundle和替換表達式

A.properties: thekey = {0}這是一個測試

然後我有Java代碼負荷資源包:

ResourceBundle labels = 
    ResourceBundle.getBundle("A", currentLocale); 
labels.getString("thekey"); 

我如何可以與一些值替換{0}文本

labels.getString( 「thekey」, 「是的!」);

使得輸出出來爲:

是!這是一個測試。

沒有任何方法是Resource Bundle的一部分來執行此操作。另外,我在Struts中,有沒有辦法使用MessageProperties來替換。

回答

11

你正在尋找的類是java.text.MessageFormat;具體而言,調用

MessageFormat.format("{0} This {1} a test", new Object[] {"Yes!!!", "is"}); 

MessageFormat.format("{0} This {1} a test", "Yes!!!", "is"); 

將返回

"Yes!!! This is a test" 

[不幸的是,我不能與Struts的連接幫助,雖然看起來this相關]