Java – replace the contents in curly braces with something else (e.g. {1}) [copy]

See English answers > java: string formatting with placeholders 3

Hey {1},you are {2}.

Here 1 and 2 are keys whose values will be added dynamically

Now I need to replace {1} with the value represented by 1, and then I need to replace {2} with the value represented by 2 in the above sentence

What shall I do?

I know what the string segmentation function is. I know very well that through this function, I can do what I want to do, but I'm looking for something better

Note: I don't know what these keys are in advance I also need to retrieve the key Then I need to replace the value in the string according to the key

Solution

thank https://stackoverflow.com/users/548225/anubhava This...:) You can do this:

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

}

Output:

Hey one,you are two.
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>