gpt4 book ai didi

java - 在主字符串中插入基于映射键的字符串关键字值

转载 作者:行者123 更新时间:2023-12-02 09:57:38 25 4
gpt4 key购买 nike

在Java中,我必须根据主字符串中的键插入字符串值。例如-

主字符串 -

sellers(seller: $sellerId, shipment: $shipmentId)

键和值的映射 -

{
sellerId: abc
shipmentId: 123
}

所以插入后就会变成

sellers(seller: abc, shipment: 123)

我知道我可以进行字符串替换。但这似乎不是一个好的方法。所以只是想知道这里是否有标准方法或更好的方法?

最佳答案

您可以考虑两种方法:

1 - 循环遍历映射条目,并执行简单的字符串替换(请注意,这假设字符串中每个 var 只出现一次;如果不是这种情况,则需要使用 ReplaceAll):

String text = "sellers(seller: $sellerId, shipment: $shipmentId)";
Map<String, Object> binding = ...;

String result = text;
for (Entry<String, Object> entry : binding.entrySet()) {
result = result.replace("$" + entry.getKey(), String.valueOf(entry.getValue()));
}

2 - 对于高级用例,您需要使用适当的模板引擎。这是使用 groovy's simple template engine 的示例(在java中使用时添加 groovy jar ):

groovy.text.SimpleTemplateEngine engine = new groovy.text.SimpleTemplateEngine();
Writable template = engine.createTemplate(text).make(binding);

String result = template.toString();

请注意,groovy 替换了以 $ 为前缀的变量名称,这就是为什么它无需更改即可工作(使其成为您当前语法的不错选择)。

两者都会产生您预期的结果,但您必须根据结果进行选择。

关于java - 在主字符串中插入基于映射键的字符串关键字值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55877683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com