用Java中哈希映射中的值替换字符串值

用Java中哈希映射中的值替换字符串值,java,string,hashmap,Java,String,Hashmap,我已经创建了一个哈希映射,其中包含我的键值对,用于用对应于各个键的值替换用户输入。 对于exp,我有多个字符串,如 String pattern = "a+b"; String pattern = "C__a_plus_b+d" String pattern = "d+C__a_plus_b+F__c_plus_d" 我有一个hashmap,它包含如下值 HashMap<String, String> vals = new HashMap<>(); vals.

我已经创建了一个哈希映射,其中包含我的键值对,用于用对应于各个键的值替换用户输入。 对于exp,我有多个字符串,如

 String pattern = "a+b";
 String pattern =  "C__a_plus_b+d"
 String pattern = "d+C__a_plus_b+F__c_plus_d"
我有一个hashmap,它包含如下值

HashMap<String, String> vals = new HashMap<>();

vals.put("a", "123");
vals.put("b", "13");
vals.put("C__a_plus_b", "123");
vals.put("d", "1623");
vals.put("C__a_plus_b", "5");
vals.put("F__c_plus_d", "15");

对于Java 8流,它应该类似于:

String result = String.join(
    "+",
    Arrays.asList(pattern.split("\\+"))
        .stream()
        .map((String s) -> vals.get(s))
        .collect(Collectors.toList())
);

C\u a\u+b
映射到
123
5
。发生了什么事???到目前为止,您编写了哪些代码?对于(HashMap.Entry val:lablemap.entrySet()){result=operation.replace(val.getKey(),val.getValue());operation=result;}但它不起作用,我认为特殊的ch.不替换+是正则表达式的特殊字符,用“\\”转义
String result = String.join(
    "+",
    Arrays.asList(pattern.split("\\+"))
        .stream()
        .map((String s) -> vals.get(s))
        .collect(Collectors.toList())
);