加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 用其他东西替换花括号内的内容(例如{1})[复制]

发布时间:2020-12-15 02:00:48 所属栏目:Java 来源:网络整理
导读:参见英文答案 Java: String formatting with placeholders????????????????????????????????????3个 我有一个字符串如下 Hey {1},you are {2}. 这里1和2是键,其值将动态添加. 现在我需要用1代表的值替换{1},然后我需要用上面句子中2代表的值替换{2}. 我该怎
参见英文答案 > Java: String formatting with placeholders????????????????????????????????????3个
我有一个字符串如下

Hey {1},you are {2}.

这里1和2是键,其值将动态添加.

现在我需要用1代表的值替换{1},然后我需要用上面句子中2代表的值替换{2}.

我该怎么做?

我知道字符串的分割功能是什么,我非常清楚,通过该功能,我可以做我想做的事,但我正在寻找更好的东西.

注意:我事先并不知道这些键是什么.我也需要检索密钥.然后根据键我需要替换字符串中的值.

解决方法

感谢 https://stackoverflow.com/users/548225/anubhava这个…… :).你可以这样做:

public static void main(String[] args) {
    String s = "Hey {1},you are {2}.";
    HashMap<Integer,String> hm = new HashMap();
    hm.put(1,"one");
    hm.put(2,"two");
    Pattern p = Pattern.compile("({d+})");
    Matcher m = p.matcher(s);
    while (m.find()) {
        System.out.println(m.group());
        String val1 = m.group().replace("{","").replace("}","");
        System.out.println(val1);
        s = (s.replace(m.group(),hm.get(Integer.parseInt(val1))));
        System.out.println(s);
    }

}

输出:

Hey one,you are two.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读