2012-09-18 1 views
7

私はワッフルやちょっとした話をしてもお詫びしますが、私はベロシティに新しい、そしてこれらのフォーラムです!速度の文字列の出力部分

特定の文字の文字列の内容を確認し、テキストの2番目の部分を出力する必要があります。例:

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

3つのアスタリスクの後にすべてのテキストを出力したいとします。私はフォーラムを精査しましたが、私を完全に助ける何かを見つけることはできません。

答えて

20

ベロシティは実際のJavaオブジェクトの正面にすぎないので、indexOfsubstringを含むpublic methods of the String classにアクセスできます。だから、のようなものを試してください:

#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 thats大きな助けthats。元の文字列はフリーフォーマットの入力フィールドになりますが、表示するテキストの前に***を使用するようにユーザーを設定できます。代わりに、ユーザーが自由形式ボックスの5行目で出力テキストを開始した場合、理論的には配列を作成して5番目の要素を出力することができます。これは可能ですか?私はキャリッジリターンを各配列要素の分割として使用しようとしましたが、そのことはできません。何か案は?上記の解決策がうまくいかない場合。 – user1680260

+0

Velocity 1.7では '$ string.split( '\ n')'で動作するはずですが、以前のバージョンについてはわかりません。 –

+0

ありがとうSergiu Dumitriu。 $ myVariable = $ myVariable.toString()の後にStringクラスのすべてのパブリックメソッドを使用することができました。 –

関連する問題