【问题标题】:Template literals in javascript [duplicate]javascript中的模板文字[重复]
【发布时间】:2018-08-16 09:59:08
【问题描述】:

在javascript中我可以编写以下代码:

response = {
    status: 1,
    data: {
        key : 2
    }
}
var result = `status is ${response.status}, data key is ${response.data.key}`
console.log(result);

输出是

status is 1, data key is 2

是否有任何库提供在 java 中执行此操作的方法,提供以下功能?

String xxxFunction(Map map, String template)

请注意${response.data.key}的用法,map in map

【问题讨论】:

    标签: javascript templates


    【解决方案1】:

    您可以使用String.format

    String template = "status is %s, data key is %s"
    String result = String.format(template, status, key);
    

    【讨论】:

    • 虽然这可能会回答这个问题,但您应该通过提供一些解释性文本和文档来扩展您的答案以供进一步阅读。
    • 不是一回事...
    • @theMayer - 你是什么意思?
    • @MasterJoe,string.format 与模板文字不同——甚至不接近相同的东西。事实上,这是你试图用模板文字来避免的。所以正确的答案是“Java 不提供这个”。游戏、设置和匹配到 C#
    【解决方案2】:

    你可以试试 Apache common text 中的StrSubstitutor

     Map valuesMap = HashMap();
     valuesMap.put("animal", "quick brown fox");
     valuesMap.put("target", "lazy dog");
     String templateString = "The ${animal} jumps over the ${target}. ${undefined.number:-1234567890}.";
     StrSubstitutor sub = new StrSubstitutor(valuesMap);
     String resolvedString = sub.replace(templateString);
    

    可以找到下载链接/依赖here

    【讨论】:

    猜你喜欢
    • 2019-10-29
    • 1970-01-01
    • 2019-12-13
    • 1970-01-01
    • 2020-03-30
    • 2019-09-30
    • 2016-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多