gpt4 book ai didi

java - 为什么带有自定义分隔符的 StringTemplates 不起作用?

转载 作者:行者123 更新时间:2023-12-01 06:20:33 25 4
gpt4 key购买 nike

我正在尝试使用带有自定义分隔符的字符串模板。

此代码片段:

new ST("Hello @what@", '@', '@').add("what", "world").render()

抛出org.stringtemplate.v4.compiler.STException,所以我显然做错了。

如果我将其更改为 new ST("Hello $what$", '$', '$'),它就会起作用。为什么@不起作用?

编辑 - 除了 $@ 之外,我尝试了其他字符,到目前为止,除了 $ 之外,其他字符都不起作用。这是怎么回事?

最佳答案

“$”、“<”等字符对于 StringTemplate 来说是特殊的,需要转义。

您可以制作一个转义实用程序,例如:

ST st = new ST(StringUtility.escapeStringTemplate(str));

//utility function

public static String escapeStringTemplate(String str){
String result = str;
if (result.contains("<")) {
result = result.replace("<", "\\<");
}
if (result.contains("$")) {
result = result.replace("$", "\\$");
}

return result;
}

关于java - 为什么带有自定义分隔符的 StringTemplates 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8286693/

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