ひらがな->カタカナ変換Groovyスクリプト

各種名簿を整理するついでに、読み仮名を統一したかったので
カタカナをひらがなに変換するGroovyスクリプトを書きました。

//  全角ひらがな -> 全角かたかな変換

def String hira2kata(String a) {
	a = a.replaceAll(/あ/,'ア').replaceAll(/い/,'イ').replaceAll(/う/,'ウ').replaceAll(/え/,'エ').replaceAll(/お/,'オ')
	a = a.replaceAll(/ぁ/,'ァ').replaceAll(/ぃ/,'ィ').replaceAll(/ぅ/,'ゥ').replaceAll(/ぇ/,'ェ').replaceAll(/ぉ/,'ォ')
	a = a.replaceAll(/か/,'カ').replaceAll(/き/,'キ').replaceAll(/く/,'ク').replaceAll(/け/,'ケ').replaceAll(/こ/,'コ')
	a = a.replaceAll(/さ/,'サ').replaceAll(/し/,'シ').replaceAll(/す/,'ス').replaceAll(/せ/,'セ').replaceAll(/そ/,'ソ')
	a = a.replaceAll(/た/,'タ').replaceAll(/ち/,'チ').replaceAll(/つ/,'ツ').replaceAll(/て/,'テ').replaceAll(/と/,'ト')
	a = a.replaceAll(/な/,'ナ').replaceAll(/に/,'ニ').replaceAll(/ぬ/,'ヌ').replaceAll(/ね/,'ネ').replaceAll(/の/,'ノ')
	a = a.replaceAll(/は/,'ハ').replaceAll(/ひ/,'ヒ').replaceAll(/ふ/,'フ').replaceAll(/へ/,'ヘ').replaceAll(/ほ/,'ホ')
	a = a.replaceAll(/ま/,'マ').replaceAll(/み/,'ミ').replaceAll(/む/,'ム').replaceAll(/め/,'メ').replaceAll(/も/,'モ')
	a = a.replaceAll(/や/,'ヤ').replaceAll(/ゆ/,'ユ').replaceAll(/よ/,'ヨ').replaceAll(/ら/,'ラ').replaceAll(/り/,'リ')
	a = a.replaceAll(/ゃ/,'ャ').replaceAll(/ゅ/,'ュ').replaceAll(/ょ/,'ョ')
	a = a.replaceAll(/る/,'ル').replaceAll(/れ/,'レ').replaceAll(/ろ/,'ロ').replaceAll(/わ/,'ワ').replaceAll(/を/,'ヲ')
	a = a.replaceAll(/ん/,'ン')
	a = a.replaceAll(/が/,'ガ').replaceAll(/ぎ/,'ギ').replaceAll(/ぐ/,'グ').replaceAll(/げ/,'ゲ').replaceAll(/ご/,'ゴ')
	a = a.replaceAll(/ざ/,'ザ').replaceAll(/じ/,'ジ').replaceAll(/ず/,'ズ').replaceAll(/ぜ/,'ゼ').replaceAll(/ぞ/,'ゾ')
	a = a.replaceAll(/だ/,'ダ').replaceAll(/ぢ/,'ヂ').replaceAll(/づ/,'ヅ').replaceAll(/で/,'デ').replaceAll(/ど/,'ド')
	a = a.replaceAll(/ば/,'バ').replaceAll(/び/,'ビ').replaceAll(/ぶ/,'ブ').replaceAll(/べ/,'ベ').replaceAll(/ぼ/,'ボ')
	a = a.replaceAll(/ぱ/,'パ').replaceAll(/ぴ/,'ピ').replaceAll(/ぷ/,'ブ').replaceAll(/ぺ/,'ペ').replaceAll(/ぽ/,'ポ')
	a = a.replaceAll(/う゛/,'ヴ')
}

//test code
assert hira2kata("あぜるばいじゃん") == "アゼルバイジャン"

元ネタにしたSEDはこちらですが、GroovyよりもSEDの方がすっきり感がありますね。

y/ぁあぃいぅうぇえぉお/ァアィイゥウェエォオ/
y/かきくけこさしすせそたちっつてとなにぬねのはひふ/カキクケコサシスセソタチッツテトナニヌネノハヒフ/
y/へほまみむめもゃやゅゆょよらりるれろわをん/ヘホマミムメモャヤュユョヨラリルレロワヲン/

s///g
s///g
s///g
s///g
s///g
s///g
s///g
s///g
s///g
s///g
s///g
s///g
s///g
s///g
s///g
s///g
s///g
s///g
s///g
s///g
s///g
s///g
s///g
s///g
s///g
s/う゛//g