44

I want to replace a part of a string in Velocity Template Language with another string.

For Example:

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

I want to replace ll in Hello with ++. The output should be He++o

Please help me

Thanks Kishore

1 Answer 1

80

By default you can use the methods of the Java String object:

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

will produce He++o and you can also use velocity variables as arguments to your method calls, e.g.:

#set( $a = "Hello" )
#set( $b = "+" )
#set( $c = $a.replace("l", ${b}) )
${c}
Sign up to request clarification or add additional context in comments.

3 Comments

I just want to add a little note for future visitors: I had a very simple conversion in my velocity template from ö to oe, but it seemed like it was not working. Anyway, after a while I realised the character set of input was cp-1252 and jvm was working with utf-8 so the "ü" in the template was not the "ü" I was after..
what is the purpose of the curly braces here?
@anon58192932 Curly braces are for formal notion. In this specific example,they are not absolutely required. $b is an identical reference as ${b}. Link: Apache

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.