LoginSignup
6
4

More than 5 years have passed since last update.

Swift:ローマ字の文字列をひらがな・カタカナに変換するクラス作った

Last updated at Posted at 2018-01-12

背景

iOSのCustom Keyboard Extensionでカスタムキーボードを作っている際に日本語入力を行いたくなりました。
しかし、なぜか日本語だけはぶられておりAPIがまともに整っていない状況であることに気づき、絶望しました。
そこで、自然言語処理の単位がCだった残念な自分が、漢字混じり文への変換はできなくてもせめてひらがな・カタカナへの変換くらいはしたいと奮起し、 今回紹介するクラスを作成するに至りました。

ソースコード

JapaneseというクラスファイルをGithubに載せてあります。
参照・利用ご自由にどうぞ。ただし、商用利用の際はREADMEを一読してほしいです。

用例

let jp = Japanese()

// ローマ字 -> ひらがな の時は getHiragana()
print(jp.getHiragana(roman: "axa^~kokorogapyonpyonsurunjaxa^~"))

// ローマ字 -> カタカナ の時は getKatakana()
print(jp.getKatakana(roman: "axa^~kokorogapyonpyonsurunjaxa^~"))

// ローマ字 -> 半角カタカナ の時は getHalfKatakana()
print(jp.getHalfKatakana(roman: "axa^~kokorogapyonpyonsurunjaxa^~"))

// 出力結果
// >> あぁ^~こころがぴょんぴょんするんじゃぁ^~
// >> アァ^~ココロガピョンピョンスルンジャァ^~
// >> アァ^~ココロガピョンピョンスルンジャァ^~

余談

ローマ字を日本語に変換する方法にCFStringTransformkCFStringTransformLatinHiraganaを用いる方法がありますが、これは完璧ではなかったです。"wye"で「ゑ」と変換できないし、子音続きの場合:例えば"wktksuru"のときは「うくてくする」になってしまいます。(ほんらいなら「wktkする」になってほしい。)

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4