如何为字母替换密码(groovy)创建一个编码器和解码器?

时间:2011-01-06 19:58:53

标签: java encoding groovy decoding

基本上我必须在groovy上设计和实现它,这是对特定段落进行编码和解码吗?

1 个答案:

答案 0 :(得分:0)

你可以查看这个

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,但结构是一样的。

编辑 - 这是一个关于如何进行替换的示例。请注意,这可能更加时髦,并且它不处理标点符号,但它应该有帮助

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)