Java中的模板文字

fud*_*udy 7 java templates

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

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

输出是

status is 1, data key is 2
Run Code Online (Sandbox Code Playgroud)

有没有任何库提供在Java中执行以下功能的方法?

String xxxFunction(Map map, String template)
Run Code Online (Sandbox Code Playgroud)

请注意${response.data.key}地图中地图的用法

pvp*_*ran 9

你可以利用 String.format

String template = "status is %s, data key is %s"
String result = String.format(template, status, key);
Run Code Online (Sandbox Code Playgroud)

  • 不是同一个东西... (3认同)
  • @MasterJoe, string.format 与模板文字不是同一件事 - 甚至不接近同一件事。事实上,这就是您试图通过模板文字来避免的情况。所以正确的答案是“Java 不提供这个”。使用 C# 进行游戏、设置和匹配 (3认同)

Mạn*_*yễn 3

您可以尝试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);
Run Code Online (Sandbox Code Playgroud)

您可以在此处找到下载链接/依赖项