Skip to content

Instantly share code, notes, and snippets.

@pindamonhangaba
Created November 19, 2015 18:56
Show Gist options
  • Select an option

  • Save pindamonhangaba/3d1bea64a63e2aa2f607 to your computer and use it in GitHub Desktop.

Select an option

Save pindamonhangaba/3d1bea64a63e2aa2f607 to your computer and use it in GitHub Desktop.
package main
import (
"fmt"
)
func main() {
fmt.Println(kanaSwitch("あ ダ チ ヂ ぃ ok い ぅ hip hip う ぇ え ぉ お か "))
}
func kanaSwitch(kana string) (out string) {
hr := rune('\u3040')
he := rune('\u3095')
kr := rune('\u30a0')
ke := rune('\u30f5')
diff := int(kr) - int(hr)
runes := []rune(kana)
for _, k := range runes {
if int(k) > int(kr) && int(k) <= int(ke) {
// is katakana
out = out + string(rune(int(k)-diff))
} else if int(k) > int(hr) && int(k) <= int(he) {
// is hiragana
out = out + string(rune(int(k)+diff))
} else {
out = out + string(k)
}
}
return out
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment