We can use the collectReplacements(Closure)
method to replace characters in a String
. We pass a closure to the method and the closure is invoked for each character in the String
value. If we return null
the character is not transformed, otherwise we can return the replacement character.
def s = 'Gr00vy is gr8' def replacement = { // Change 8 to eat if (it == '8') { 'eat' // Change 0 to o } else if (it == '0') { 'o' // Do not transform } else { null } } assert s.collectReplacements(replacement) == 'Groovy is great'
Code written with Groovy 2.1.6