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;
}