Вы можете проверить это
http://groovy.codehaus.org/ExpandoMetaClass+-+Dynamic+Method+Names
, которое показывает типичный вариант использования кодеков.
В основном что-то вроде (по этой ссылке)
class HTMLCodec {
static encode = { theTarget ->
HtmlUtils.htmlEscape(theTarget.toString())
}
static decode = { theTarget ->
HtmlUtils.htmlUnescape(theTarget.toString())
}
}
вы не будете использовать HtmlUtils, но структура такая же.
EDIT - вот пример того, как выполнить подстановку.Обратите внимание, что это, вероятно, может быть более интересным, и это не имеет отношения к пунктуации, но это должно помочь
def plainText = 'hello'
def solutionChars = new char[plainText.size()]
for (def i = 0; i < plainText.size(); i++){
def currentChar = plainText.charAt(i)
if (Character.isUpperCase(currentChar))
solutionChars[i] = Character.toLowerCase(currentChar)
else
solutionChars[i] = Character.toUpperCase(currentChar)
}
def cipherText = new String(solutionChars)
println(solutionChars)
РЕДАКТИРОВАТЬ - вот решение, которое является немного более отличным
def plainText = 'hello'
def cipherText = ""
plainText.each {c ->
if (Character.isUpperCase((Character)c))
cipherText += c.toLowerCase()
else
cipherText += c.toUpperCase()
}
println(cipherText)