2012-09-18 45 views
7

道歉,如果我華而不實,或者說有點亂碼,但我是速度新手,這些論壇!輸出速度字符串的一部分

我需要檢查某個字符的字符串內容並輸出文本的第二部分(如果出現)。例如:

set ($string = "This is a long string *** but I only want to output this on my email"). 

我想輸出3個星號後的所有文本。我搜索了論壇,但無法找到能完全幫助我的任何內容。

回答

20

Velocity只是真正的Java對象的外觀,因此您可以訪問所有public methods of the String class,包括indexOfsubstring。因此,嘗試這樣的:

#set ($string = "This is a long string *** but I only want to output this on my email") 
#set ($index = $string.indexOf('***')) 
#set ($index = $index + 3) 
#set ($end = $string.substring($index)) 

如果你有超過你投入的背景下哪些對象更多的控制,你可以添加的StringUtils實例作爲一個輔助工具,然後直接使用substringAfter

+0

謝謝Sergiu這是一個很大的幫助。原始字符串將是一個自由格式的輸入字段,但我可以讓用戶在要顯示的文本之前使用***。或者,如果用戶在自由格式框的第5行開始輸出文本,我可以在理論上創建一個數組並向前輸出第5個元素。這可能嗎?我試過使用回車作爲每個數組元素的拆分,但似乎無法做到這一點。有任何想法嗎?如果不是,上述解決方案將很好。 – user1680260

+0

它應該在Velocity 1.7中使用'$ string.split('\ n')',儘管我不確定以前的版本。 –

+0

謝謝Sergiu Dumitriu。我能夠在$ myVariable = $ myVariable.toString()之後使用String類的所有公共方法 –