0

代码:

Map<String, Number> valueMap = new HashMap<>();
valueMap.put("amount", 20.0);
valueMap.put("id", 123456);
StringSubstitutor ss = new StringSubstitutor(valueMap);
// I expect output: $123456===$20.0
System.out.println(ss.replace("${id}===${amount}"));  // output: 123456===20.0
System.out.println(ss.replace("$${id}===$${amount}"));// output: ${id}===${amount}
System.out.println(ss.replace("$$${id}===$$${amount}")); // output: $${id}===$${amount}

我期望输出:$123456===$20.0,怎么办?

4

1 回答 1

1

您可以通过设置转义字符来实现它,如下例所示。我已经在我的本地机器上对其进行了测试,并按预期工作:

Map<String, Number> valueMap = new HashMap<>();
valueMap.put("amount", 20.0);
valueMap.put("id", 123456);

StringSubstitutor ss = new StringSubstitutor(valueMap);
ss.setEscapeChar('\\');

System.out.println(ss.replace("$${id}===$${amount}"));  // output: $123456===$20.0

请参考java文档

于 2021-06-01T13:23:29.873 回答