java.text.MessageFormat
String str = MessageFormat.format("我是{0},我来自{1},今年{2}岁", "中国人", "北京", "22");
字符串替换
String str="我是{0},我来自{1},今年{2}岁";
str = str.replace("{0}", "中国人");
str = str.replace("{1}", "北京");
str = str.replace("{2}", "22");
System.out.println(str);
正则表达式
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;
}