●ローマ字半角カナ変換/逆

※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

情報


概要

ローマ字を半角カナに変換します。

解説

引数

S:半角小文字のローマ字文字列

返り値

半角カナに変換された文字列

サンプルプログラム

「kyouhaasagohannnimedamayakiwotabemasita.」をローマ字半角カナ変換して言う。
//キョウハアサゴハンニメダマヤキヲタベマシタ.

//本体

●ローマ字半角カナ変換(Sの|Sを)
 A=(「-|ltu|xtu|la|li|lu|le|lo|xa|xi|xu|xe|xo|bb|cc|dd|ff|gg|hh|jj|kk|ll|mm|pp|qq|rr|ss|tt|vv|ww|xx|yy|zz|nn|ye|dhu|shi|chi|tsu|
fu|wi|wu|we|ji|kya|kyu|kyo|sya|syu|syo|tya|tyu|tyo|nya|nyu|nyo|hya|hyu|hyo|mya|myu|myo|rya|ryu|ryo|gya|gyu|gyo|zya|
zyu|zyo|bya|byu|byo|pya|pyu|pyo|sha|shu|sho|cha|chu|cho|ja|ju|jo|ka|ki|ku|ke|ko|sa|si|su|se|so|ta|ti|tu|te|to|na|ni|nu|ne|
no|ha|hi|hu|he|ho|ma|mi|mu|me|mo|ya|yu|yo|ra|ri|ru|re|ro|wa|wo|ga|gi|gu|ge|go|za|zi|zu|ze|zo|da|di|du|de|do|ba|bi|bu|be|
bo|pa|pi|pu|pe|po|n|a|i|u|e|o」の改行を空に置換)を"|"で区切る。
 B=(「ー|ッ|ッ|ァ|ィ|ゥ|ェ|ォ|ァ|ィ|ゥ|ェ|ォ|ッb|ッc|ッd|ッf|ッg|ッh|ッj|ッk|ッl|ッm|ッp|ッq|ッr|ッs|ッt|ッv|ッw|ッx|ッy|ッz|ン|イェ|デュ|シ|チ|ツ|フ|ウィ|ウ|ウェ|ジ|キャ|
キュ|キョ|シャ|シュ|ショ|チャ|チュ|チョ|ニャ|ニュ|ニョ|ヒャ|ヒュ|ヒョ|ミャ|ミュ|ミョ|リャ|リュ|リョ|ギャ|ギュ|ギョ|ジャ|ジュ|ジョ|ビャ|ビュ|ビョ|ピャ|ピュ|ピョ|シャ|シュ|ショ|
チャ|チュ|チョ|ジャ|ジュ|ジョ|カ|キ|ク|ケ|コ|サ|シ|ス|セ|ソ|タ|チ|ツ|テ|ト|ナ|ニ|ヌ|ネ|ノ|ハ|ヒ|フ|ヘ|ホ|マ|ミ|ム|メ|モ|ヤ|ユ|ヨ|ラ|リ|ル|レ|ロ|ワ|ヲ|ガ|ギ|グ|ゲ|ゴ|
ザ|ジ|ズ|ゼ|ゾ|ダ|ヂ|ヅ|デ|ド|バ|ビ|ブ|ベ|ボ|パ|ピ|プ|ペ|ポ|ン|ア|イ|ウ|エ|オ」の改行を空に置換)を"|"で区切る。
 Aで反復、S=Sの対象をB[回数-1]に置換。 
 Sで戻る。

●半角カナローマ字変換(Sの|Sを|Sで)
 B=(「-|shi|chi|tsu|fu|wi|wu|we|ji|ka|ki|ku|ke|ko|sa|si|su|se|so|
ta|chi|tsu|te|to|na|ni|nu|ne|no|ha|hi|fu|he|ho|ma|mi|mu|me|mo|ya|yu|yo|ra|ri|ru|re|ro|wa|wo|ga|gi|gu|ge|go|za|zi|zu|ze|
zo|da|di|du|de|do|ba|bi|bu|be|bo|pa|pi|pu|pe|po|n|n|a|i|u|e|o|fya|fyu|fyo|kya|kyu|kyo|sha|shu|sho|cha|chu|cho|
nya|nyu|nyo|hya|hyu|hyo|mya|myu|myo|rya|ryu|ryo|gya|gyu|gyo|ji|ja|ju|je|jo|bya|byu|byo|pya|pyu|pyo|sha|shu|sho|cha|chu|cho」の改行を空に置換)を"|"で区切って配列逆順。
 A=(「ー|シ|チ|ツ|フ|ウィ|ウ|ウェ|ジ|カ|キ|ク|ケ|コ|サ|シ|ス|セ|ソ|タ|チ|ツ|テ|ト|ナ|ニ|ヌ|ネ|ノ|ハ|ヒ|フ|ヘ|ホ|マ|ミ|ム|メ|モ|ヤ|ユ|ヨ|ラ|
リ|ル|レ|ロ|ワ|ヲ|ガ|ギ|グ|ゲ|ゴ|ザ|ジ|ズ|ゼ|ゾ|ダ|ヂ|ヅ|デ|ド|バ|ビ|ブ|ベ|ボ|パ|ピ|プ|ペ|ポ|ン|ン|ア|イ|ウ|エ|オ|ファ|フュ|フョ|
キャ|キュ|キョ|シャ|シュ|ショ|チャ|チュ|チョ|ニャ|ニュ|ニョ|ヒャ|ヒュ|ヒョ|ミャ|ミュ|ミョ|リャ|リュ|リョ|ギャ|ギュ|ギョ|ジ|ジャ|ジュ|ジェ|ジョ|ビャ|
ビュ|ビョ|ピャ|ピュ|ピョ|シャ|シュ|ショ|チャ|チュ|チョ」の改行を空に置換)を"|"で区切って配列逆順。
 Aで反復、S=Sの対象をB[回数-1]に置換。
 1の間
   もし、(Sで1から「ッ」を文字検索)>0ならば
     Sのそれ+1から1バイト抜き出す。
     S=Sの「ッ」をそれに単置換。
   違えば、抜ける。
 Sで戻る。


  • しょう -- しょう (2009-02-06 20:49:26)
名前:
コメント:


ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。