java - 如何在java中使用StrSubstitutor进行嵌套Map

标签 java dictionary

    Map<String, Object> baseMap = new HashMap<String, Object>();

    baseMap.put("Name", "Raja");

    Map<String, Object> address = new HashMap<String, Object>();
    address.put("Street", "RAMA");

    baseMap.put("Address", address);

    StrSubstitutor strsub = new StrSubstitutor(baseMap);

    String str = "This is ${Name} from ${Address.Street}";

    System.out.println(strsub.replace(str));

输出为:

我是来自 ${Address.Street} 的 Raja

我需要的是:

这是 RAMA 的 Raja

我怎样才能得到这个?

最佳答案

您可能需要另一个 StrSubstitutor 实例来替换地址:

StrSubstitutor strsub = new StrSubstitutor(baseMap);
StrSubstitutor baseSub = new StrSubstitutor(address);

String str = "This is ${Name} from ${Address.Street}";

System.out.println(baseSub.replace(strsub.replace(str)));

但我相信更好的解决方案是使用 sinlge baseMap:

Map<String, Object> baseMap = new HashMap<String, Object>();

baseMap.put("Name", "Raja");
baseMap.put("Street", "RAMA");

StrSubstitutor strsub = new StrSubstitutor(baseMap);

String str = "This is ${Name} from ${Address.Street}";

System.out.println(strsub.replace(str));

关于java - 如何在java中使用StrSubstitutor进行嵌套Map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23608507/

相关文章:

java - maven-jaxb2-plugin 不在 linux 机器上编译 xsd 但在 windows 上工作?

java - hibernate 如何在没有 JPA 规范的情况下工作

java - 扩展 jframe 的大小?

c++ - 为什么我可以使用 for 循环而不是单独访问 C++ map 元素?

.net - 在绑定(bind)到字典的组合框中设置所选项目

java shell脚本问题

java - 使用 Java 在 MySQL 中创建表时未选择数据库错误

python - 将 Python 字典转换为 JSON 数组

python - 将字典的内容导出到 m x n 矩阵

java - 多次调用 hazelcast 中的 Load All