在 Velocity 模板语言中替换字符串的子字符串

Posted

技术标签:

【中文标题】在 Velocity 模板语言中替换字符串的子字符串【英文标题】:Replace a Substring of a String in Velocity Template Language 【发布时间】:2011-10-14 04:56:46 【问题描述】:

我想用另一个字符串替换 Velocity 模板语言中字符串的一部分。

例如:

#set($a = "Hello")
#set($b = "+")

我想用 ++ 替换 Hello 中的 ll。输出应该是 He++o

请帮帮我

谢谢 基肖尔

【问题讨论】:

【参考方案1】:

默认可以使用Java String对象的方法:

#set( $a = "Hello" )
#set( $b = $a.replace("l", "+") )
$b

将产生 He++o,您还可以使用速度变量作为方法调用的参数,例如:

#set( $a = "Hello" )
#set( $b = "+" )
#set( $c = $a.replace("l", $b) )
$c

【讨论】:

我只是想为未来的访问者添加一点提示:我在我的速度模板中进行了从 ö 到 oe 的非常简单的转换,但它似乎不起作用。无论如何,过了一会儿我意识到输入的字符集是 cp-1252 并且 jvm 正在使用 utf-8 所以模板中的“ü”不是我想要的“ü”.. 这里大括号的作用是什么? @anon58192932 花括号用于正式概念。在此特定示例中,它们不是绝对必需的。 $b 是与 $b 相同的引用。链接:Apache

以上是关于在 Velocity 模板语言中替换字符串的子字符串的主要内容,如果未能解决你的问题,请参考以下文章

C语言中如何用一个字符串替换一个主串中的子串

如何在 AWS appSync 的 Apache Velocity 请求映射模板中操作字符串和数组

用C语言实现 原字符串中指定的子串的的查找与替换代码?注:一定要有用户自己输入指定子串的那个过程!

一个字符串中替换多个字符怎么做

在速度模板中转义引号

在 Velocity 模板语言中创建和遍历数组