.NET TIPS

文字列の全角/半角をチェックするには?

デジタルアドバンテージ
2003/04/11

 シフトJIS文字列は全角文字が2byte、半角文字が1byteと決められているため、TIPS:文字列の長さを取得するには?TIPS:文字列のバイト数を取得するには?にある方法を組み合わせると、文字列中の文字がすべて全角かどうか、あるいは、すべて半角かどうか、をチェックすることができる。

 チェック対象となる文字列がすべて全角文字の場合は、文字列のシフトJISとしてのバイト数は、その文字列の文字数を2倍した値と等しくなるはずである。一方、文字列がすべて半角文字からなる場合は、文字列のバイト数と文字数は等しくなるはずである。

 次のサンプル・プログラムは、この2つのチェック・ルーチンを実装したものだ。isZenkakuメソッドが全角チェックを、isHankakuメソッドが半角チェックを行う。両者ともパラメータには対象となる文字列を指定する。

// strcheck.cs

using System;
using System.Text;

public class StringChecker {

  static Encoding sjisEnc = Encoding.GetEncoding("Shift_JIS");

  public static bool isZenkaku(string str) {
    int num = sjisEnc.GetByteCount(str);
    return num == str.Length * 2;
  }

  public static bool isHankaku(string str) {
    int num = sjisEnc.GetByteCount(str);
    return num == str.Length;
  }

  public static void Main() {

    string str = "全角文字だけ";
    Console.WriteLine(isZenkaku(str)); // 出力:True
    Console.WriteLine(isHankaku(str)); // 出力:False

    str = "ハンカクonly";
    Console.WriteLine(isZenkaku(str)); // 出力:False
    Console.WriteLine(isHankaku(str)); // 出力:True

    str = "全角and半角";
    Console.WriteLine(isZenkaku(str)); // 出力:False
    Console.WriteLine(isHankaku(str)); // 出力:False
  }
}
// コンパイル方法:csc strcheck.cs

文字列の全角チェックと半角チェックを行うC#のサンプル・プログラム(strcheck.cs)

 これらのメソッドは、テキスト・ボックスなどに入力された値のチェックに利用できるだろう。End of Article

カテゴリ:クラス・ライブラリ 処理対象:文字列
使用ライブラリ:Encodingクラス(System.Text名前空間)
関連TIPS:文字列の長さを取得するには?
関連TIPS:文字列のバイト数を取得するには?
 
この記事と関連性の高い別の.NET TIPS
文字列の長さを取得するには?
文字列のバイト数を取得するには?
全角英数字のみを半角に変換するには?
文字列をシフトJISとしてバイト列に変換するには?
文字列を全角/半角に変換するには?(VB.NET関数活用)
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」

@IT Special

- PR -

TechTargetジャパン

Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

イベントカレンダー

PickUpイベント

- PR -

アクセスランキング

もっと見る

ホワイトペーパーTechTargetジャパン

注目のテーマ

Insider.NET 記事ランキング

本日 月間
ソリューションFLASH