Как создать кодировщик и декодер для алфавитного шифра замены (Groovy) - PullRequest
0 голосов
/ 06 января 2011

В основном мне нужно спроектировать и реализовать это на Groovy, это кодировать и декодировать определенный абзац?

1 Ответ

0 голосов
/ 06 января 2011

Вы можете проверить это

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)
...