1. 程式人生 > >JAVA字串佔位符替換

JAVA字串佔位符替換

如果有字串 “我是{0},我來自{1},今年{2}歲。 請問怎樣用String的內建方法用替換掉字串的佔位符:比如“我是中國人,我來自北京,今年22歲”。

(1)JDK 中有正好有這功能:java.text.MessageFormat
而 java.text.MessageFormat 正好用的是 {0}, {1},所以String str = MessageFormat.format("我是{0},我來自{1},今年{2}歲", "中國人", "北京", "22");
MessageFormat.format 方法從 JDK 5 開始支援變參,可以直接用逗號新增引數。

(2)String str="我是{0},我來自{1},今年{2}歲";
str = str.replace("{0}", "中國人");
str = str.replace("{1}", "北京");
str = str.replace("{2}", "22");
System.out.println(str);
(3) public static void main(String[] args){
       String str="我是{0},我來自{1},今年{2}歲";
       String[] arr={"中國人","北京","22"};
       System.out.println(fillStringByArgs(str, arr));
    }
    
    private static String fillStringByArgs(String str,String[] arr){
        Matcher m=Pattern.compile("\\{(\\d)\\}").matcher(str);
        while(m.find()){
            str=str.replace(m.group(),arr[Integer.parseInt(m.group(1))]);
        }
        return str;
    }