关闭

JAVA字符串占位符替换

标签: java
40人阅读 评论(0) 收藏 举报
分类:

如果有字符串 “我是{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;
    }

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:515次
    • 积分:4
    • 等级:
    • 排名:千里之外
    • 原创:0篇
    • 转载:2篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档