检查字符串是不是包含 Velocity 中的特定子字符串
Posted
技术标签:
【中文标题】检查字符串是不是包含 Velocity 中的特定子字符串【英文标题】:Checking if a string contains a particular substring in Velocity检查字符串是否包含 Velocity 中的特定子字符串 【发布时间】:2012-10-25 03:03:51 【问题描述】:在 Velocity 中,我有一个名为 $url 的变量,其中包含以下字符串:[ContentId(2.7507), ContentId(2.7508), ContentId(1.44551)]
我想检查该字符串是否包含子字符串 1.44551。
这是我到目前为止编写的代码,但由于某种原因它返回 False:
#if($url.contains("1.44551"))
<p>The article content id is 1.44551</p>
#else
<p>The article content id isn't 1.44551</p>
#end
我希望这将返回 True,因为 1.44551 子字符串存在于 $url 变量中。请问谁能告诉我哪里出错了?
【问题讨论】:
乍一看还不错。如果您将测试编写为#if(true)
或#if($url.equals($url))
:那么它会返回True 吗?我想我的意思是,确保 Velocity 正在评估表达式。
哎呀,同样的事情发生在我身上(但我意识到我试图使用 contains 的对象不是字符串!)...一旦我首先调用 toString 就很好,即@ 987654324@
【参考方案1】:
Velocity 将值作为 Objects 保存在上下文映射中。
如果要执行 String 方法,请添加 toString
以确保在 String 上执行 contains
方法:
#if($url.toString().contains("1.44551"))
<p>The article content id is 1.44551</p>
#else
<p>The article content id isn't 1.44551</p>
#end
【讨论】:
以上是关于检查字符串是不是包含 Velocity 中的特定子字符串的主要内容,如果未能解决你的问题,请参考以下文章
如何检查字符串是不是包含 JavaScript 中的子字符串?
如何检查字符串是不是包含 JavaScript 中的子字符串?
如何检查字符串是不是包含 JavaScript 中的子字符串?