gpt4 book ai didi

groovy - groovy 中替换许多 token 的最有效方法

转载 作者:行者123 更新时间:2023-12-03 15:06:06 26 4
gpt4 key购买 nike

我在一个字符串中有 n 个随机标记,我想使用闭包将每个值替换为方法的返回值。

例如

String theString = "Hi, this is \$randomEmail and this is a rand string: \$randomString and this is a random \$randomTelephoneNumber"



然后我想做的是根据 roke 调用每个适用的方法,用实际值替换该字符串 - 例如对于电子邮件地址 token ($randomEmail),我想调用以下方法;
String randomEmailAddress() {
return new StringBuilder(RandomStringUtils.random(6)).append("@").append(RandomStringUtils.random(6)).append(".com").toString();
}

希望使用闭包字符串替换功能,但在接下来的步骤中有点卡住了..
 Map<String,Closure> randomStrings = [randomEmail:{randomEmailAddress()},randomUserName:{randomString(8),randomTelephoneNumber:{randPhoneNumber()}}]

然后对字符串调用替换函数,并依次用正确的随机值替换每个标记。

注意:我需要操作许多基本字符串(该示例仅显示其中之一),并且我可能会或可能不会在任何时候将 map (模型)中的所有值都存在于文件中。

我知道我可以用 if 语句来做到这一点,但违背了学习闭包的目的:-)。

提前致谢,

伊恩。

最佳答案

您可以使用 Groovy Templates :

import groovy.text.SimpleTemplateEngine

// single quotes are important here, this needs to be a string, not a gstring.
String template = 'Hi, this is $randomEmail and this is a random username: $randomUserName'

Map model = [
randomEmail: { -> randomEmailAddress() },
randomUserName: { -> randomUserName() }
]

String result = new SimpleTemplateEngine().createTemplate(template)
.make(model).toString()

关于groovy - groovy 中替换许多 token 的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17883041/

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