summaryrefslogtreecommitdiff
path: root/go/atbash-cipher/atbash_cipher.go
blob: 34f94f0854fa9b8365d8acdfeb3525d416fe382e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package atbash

import "unicode"

func Atbash(s string) string {
	r := []rune{}
	for _, v := range s {
		switch {
		case unicode.IsLetter(v):
			r = append(r, 'z'-unicode.ToLower(v)+'a')
		case unicode.IsNumber(v):
			r = append(r, v)
		}
	}
	ret := []rune{}
	for i, v := range r {
		ret = append(ret, v)
		if (i+1)%5 == 0 && i != len(r)-1 {
			ret = append(ret, ' ')
		}
	}
	return string(ret)
}