J#(Java)数値かどうかをチェックする (IsNumeric)

スポンサーリンク

ある式が数値かどうか判断するようなエラーチェックが必要になる場合があります。VB で言えば IsNumeric 関数のようなメソッドです。

Microsoft.VisualBasic 名前空間配下に IsNumeric メソッドは存在するものの、この名前空間を使いたくないという理由から自作のメソッドを作ることが多いようです。

.NET Framework 的には System.Double 構造体の TryParse メソッドを使うことになります。TryParse メソッドは、何を数値として見なすか、System.Globalization.NumberStyles の引数で細かく設定することが可能です。今回は、VB の IsNumeric とほぼ同じ動きをさせることを考えたメソッドを紹介します。

サンプルコード

以下にサンプルコードを示します。

J# 全般
import System.*;

/********************************************************************************
 *
 *      検証・エラーチェックをサポートした静的クラスです。
 *
 ********************************************************************************/

public final class Validation {

  #region IsNumeric メソッド (+1)

    /********************************************************************************
     *      文字列が数値であるかどうかを返します。
     *
     * @param   stTarget    検査対象となる文字列。
     * @return              指定した文字列が数値であれば true。それ以外は false。
     ********************************************************************************/
    public static final boolean IsNumeric(final String stTarget) {
        double dNullable = 0;

        return System.Double.TryParse(
            stTarget,
            System.Globalization.NumberStyles.Any,
            null,
            dNullable
        );
    }

    /********************************************************************************
     *      文字列が数値であるかどうかを返します。
     *
     * @param   oTarget 検査対象となるオブジェクト。
     * @return          指定したオブジェクトが数値であれば true。それ以外は false。
     ********************************************************************************/
    public static final boolean IsNumeric(final Object oTarget) {
        return IsNumeric(oTarget.ToString());
    }

  #endregion

}

使用例は以下のようになります。

J# 全般
    // 文字列が数値かどうかをチェックする
    if (Validation.IsNumeric("-123,456")) {
        MessageBox.Show("数値です");
    }

関連するリファレンス

準備中です。

スポンサーリンク