用Java中哈希映射中的值替换字符串值
我已经创建了一个哈希映射,其中包含我的键值对,用于用对应于各个键的值替换用户输入。 对于exp,我有多个字符串,如用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.
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())
);