kanaxs C# : ひらがなとカタカナ、半角と全角の相互文字変換を行うC#のクラス

kanaxs C#とは?

文字列内に含まれているひらがなとカタカナの相互変換や、半角文字と全角文字の相互変換などを行うクラスです。「kanaxs Kana.JS 1.0.5」をC#に移植したものです。

必要条件

実際に確認はしていませんが、すべてのバージョンの.NET Framework(C#)で動くように作成したつもりです。

機能

kanaxs C#には、以下の機能があります。

ToHiraganaメソッド

全角カタカナを全角ひらがなに変換します。具体的には、ァ(0x30A1)からヶ(0x30F6)までの文字をひらがなに変換します。

  1
  2
  3
  4
  5
  6
  7
string inputText = "キョウモイイテンキデスネ。";
 
//カタカナをひらがなに変換する
string outputText = CSharp.Japanese.Kanaxs.Kana.ToHiragana(inputText);
 
Console.WriteLine(outputText);
//きょうもいいてんきですね。

ToKatakanaメソッド

全角ひらがなを全角カタカナに変換します。具体的には、ぁ(0x3041)からゖ(0x3096)までの文字をカタカナに変換します。

  1
  2
  3
  4
  5
  6
  7
string inputText = "あしたもいいてんきですね。";
 
//ひらがなをカタカナに変換する
string outputText = CSharp.Japanese.Kanaxs.Kana.ToKatakana(inputText);
 
Console.WriteLine(outputText);
//アシタモイイテンキデスネ。

ToHankakuメソッド

全角英数字および記号を半角に変換します。具体的には、!(0xFF01)から〜(0xFF5E)までの文字と全角スペースを半角文字に変換します。

  1
  2
  3
  4
  5
  6
  7
string inputText = "1tasu2ha 4DA!";
 
//全角を半角に変換する
string outputText = CSharp.Japanese.Kanaxs.Kana.ToHankaku(inputText);
 
Console.WriteLine(outputText);
//1tasu2ha 4DA!

ToZenkakuメソッド

半角英数字および記号を全角に変換します。具体的には、!(0x0021)から~(0x007E)までの文字と半角スペースを全角文字に変換します。

  1
  2
  3
  4
  5
  6
  7
string inputText = "1tasu2ha 3DA!";
 
//半角を全角に変換する
string outputText = CSharp.Japanese.Kanaxs.Kana.ToZenkaku(inputText);
 
Console.WriteLine(outputText);
//1tasu2ha 3DA!

ToHankakuKanaメソッド

全角カタカナを半角カタカナに変換します。具体的には、ァ(0x30A1)からン(0x30F3)までの文字と、ー(0x30FC)を、半角に変換します。

  1
  2
  3
  4
  5
  6
  7
string inputText = "キョーワ、イイテンキデスネ。";
 
//全角カナを半角カナに変換する
string outputText = CSharp.Japanese.Kanaxs.Kana.ToHankakuKana(inputText);
 
Console.WriteLine(outputText);
//キョーワ、イイテンキデスネ。

ToZenkakuKanaメソッド

半角カタカナを全角カタカナに変換します。具体的には、ヲ(0xFF66)から゚(0xFF9F)までの文字を変換します。

  1
  2
  3
  4
  5
  6
  7
string inputText = "キョーモ、イイテンキデスヨ。";
 
//半角カナを全角カナに変換する
string outputText = CSharp.Japanese.Kanaxs.Kana.ToZenkakuKana(inputText);
 
Console.WriteLine(outputText);
//キョーモ、イイテンキテ゛スヨ。

ToPaddingメソッド

「は゛」を「ば」のように、濁点や半濁点を前の文字と合わせて1つの文字に変換します。ToZenkakuKanaメソッドは半角カナの濁点と半濁点をそのまま全角の濁点と半濁点に変換しますので、これを前の文字と合体させて1つの文字にするためには、ToPaddingメソッドを呼び出します。

  1
  2
  3
  4
  5
  6
  7
string inputText = "フ゜テ゛ィンク゛";
 
//濁点と半濁点を前の文字と結合させる
string outputText = CSharp.Japanese.Kanaxs.Kana.ToPadding(inputText);
 
Console.WriteLine(outputText);
//プディング

ライセンス

kanaxsと同じ、修正BSDライセンスです。

ダウンロード

  • ファイルの文字コードはUTF-8です。文字コードを変更すると不具合が発生する可能性がありますので、文字コードを変更しないでください。一部の開発環境では文字コードが強制的に変更されてしまうことがありますので、ご注意ください。
  • 拡張子が".txt"になっている場合は、ファイル名から".txt"を取り除いてご使用ください。
バージョンリンク変更点
1.0.0filekanaxs-1.0.0.cs.txt

拡張版

kanaxsとほぼ同じ機能を持つKanaクラスを若干拡張した、KanaExクラスも作成してみました。ほとんど使われることのない文字に対応させているため、改悪になっているかもしません。

Kanaクラスとの違いは、以下のとおりです。

ToHiraganaメソッド

Kana.ToHiraganaメソッドと違い、「ヽヾヷヸヹヺ」も変換します。

ToKatakanaメソッド

Kana.ToKatakanaメソッドと違い、「ゝゞ」も変換します。

ToHankakuメソッド

Kana.ToHankakuメソッドと違い、「¥”’」も変換します。

ToZenkakuメソッド

Kana.ToZenkakuメソッドと違い、「\"'」を「¥”’」に変換します。(Kana.ToZenkakuメソッドは「\"'」を「\」に変換します。)

ToHankakuKanaメソッド

Kana.ToHankakuKanaメソッドと違い、『、。「」・゛゜U+3099(濁点)U+309A(半濁点)ヴヷヺ』も変換します。

ToZenkakuKanaメソッド

Kana.ToZenkakuKanaと違い、『。「」、・』も変換します。また、濁点、半濁点がその前の文字と合体できる時は合体させて1文字にします。

ToPaddingメソッド

Kana.ToPaddingと違い、「ゔゞヴヷヸヹヺヾ」への変換も行います。また、U+3099(濁点)とU+309A(半濁点)も前の文字と合体させて1文字にします。

ダウンロード

バージョンリンク変更点
1.0.2filekanaxs_ex-1.0.2.cs.txt
  • ToZenkakuKanaメソッドで「ヅデド」を変換すると濁点がなくなる不具合を修正。
1.0.1filekanaxs_ex-1.0.1.cs.txt
  • ToHankakuメソッドで「“」が「"」に、「‘」が「'」に変換されるようにした。
1.0.0filekanaxs_ex-1.0.0.cs.txt

その他

  • VB.NET版もあります。
  • 拡張メソッドにした方が便利かもしれませんが、そうしませんでした。

コメント

  • ToZenkakuKanaで、「ヅデド」の部分でうまく変換されない? -- tritonal 2014-06-19 (木) 17:09:55
    • KanaExのToZenkakuKanaメソッドですね。修正しておきました。ご報告ありがとうございました。 -- 管理人 2014-06-20 (金) 01:56:17


ページ情報
[ トップ ]   [ 編集 | 凍結 | 差分 | バックアップ | 添付 | 複製 | 名前変更 | リロード ]   [ 新規 | 子ページ作成 | 一覧 | 単語検索 | 最終更新 | ヘルプ ]