Java

Javaで数値チェックを実装する方法

はじめに

Javaで数値チェックを実装する方法を紹介します。

数値チェックといっても「正の数」「負の数」「小数を許容するか」「小数を許容しないか」など、細かい条件によりチェック方法が異なります。

本記事では、「正規表現」を使い様々なパターンの数値チェックを実装しています。

スポンサーリンク

正規表現による整数チェック

整数チェック

整数チェックは以下の通り。

/**
 * 数値(整数)チェック
 * @param value 検証対象の値
 * @return 結果(true:数値、false:数値ではない)
 */
public static boolean isNumber(String value) {
    boolean result = false;

    if (value != null) {
        Pattern pattern = Pattern.compile("^[0-9]+$|-[0-9]+$");
        result = pattern.matcher(value).matches();
    }

    return result;
}

上記の関数は「0」「正の整数」「負の整数」のみ「true」を返却します。

System.out.println("数値以外:" + isNumber("a"));
System.out.println("0:" + isNumber("0"));
System.out.println("正の整数:" + isNumber("123"));
System.out.println("負の整数:" + isNumber("-123"));
System.out.println("正の小数:" + isNumber("123.1"));
System.out.println("負の小数:" + isNumber("-123.1"));

【実行結果】

  • 数値以外:false
  • 0:true
  • 正の整数:true
  • 負の整数:true
  • 正の小数:false
  • 負の小数:false

正の整数チェック

正の整数チェックは以下の通り。

/**
 * 数値(正の整数)チェック
 * @param value 検証対象の値
 * @return 結果(true:数値、false:数値ではない)
 */
public static boolean isNumber2(String value) {
    boolean result = false;

    if (value != null) {
        Pattern pattern = Pattern.compile("^[0-9]+$");
        result = pattern.matcher(value).matches();
    }

    return result;
}

上記の関数は「0」「正の整数」のみ「true」を返却します。

System.out.println("数値以外:" + isNumber2("a"));
System.out.println("0:" + isNumber2("0"));
System.out.println("正の整数:" + isNumber2("123"));
System.out.println("負の整数:" + isNumber2("-123"));
System.out.println("正の小数:" + isNumber2("123.1"));
System.out.println("負の小数:" + isNumber2("-123.1"));

【実行結果】

  • 数値以外:false
  • 0:true
  • 正の整数:true
  • 負の整数:false
  • 正の小数:false
  • 負の小数:false

負の整数チェック

負の整数チェックは以下の通り。

/**
 * 数値(負の整数)チェック
 * @param value 検証対象の値
 * @return 結果(true:数値、false:数値ではない)
 */
public static boolean isNumber3(String value) {
    boolean result = false;

    if (value != null) {
        Pattern pattern = Pattern.compile("^-[0-9]+$");
        result = pattern.matcher(value).matches();
    }

    return result;
}

上記の関数は「負の整数」のみ「true」を返却します。

System.out.println("数値以外:" + isNumber3("a"));
System.out.println("0:" + isNumber3("0"));
System.out.println("正の整数:" + isNumber3("123"));
System.out.println("負の整数:" + isNumber3("-123"));
System.out.println("正の小数:" + isNumber3("123.1"));
System.out.println("負の小数:" + isNumber3("-123.1"));

【実行結果】

  • 数値以外:false
  • 0:false
  • 正の整数:false
  • 負の整数:true
  • 正の小数:false
  • 負の小数:false

正規表現による数値チェック

スポンサーリンク

数値チェック

数値チェックは以下の通り。

/**
 * 数値(整数または小数)チェック
 * @param value 検証対象の値
 * @return 結果(true:数値、false:数値ではない)
 */
public static boolean isDecimal(String value) {
    boolean result = false;

    if (value != null) {
        Pattern pattern = Pattern.compile("^([1-9]\d*|0)(\.\d+)?$|^(-[1-9]\d*|0)(\.\d+)?$");
        result = pattern.matcher(value).matches();
    }

    return result;
}

上記の関数は数値(正と負の整数 または 正と負の小数)であれば「true」を返却します。

System.out.println("数値以外:" + isDecimal("a"));
System.out.println("0:" + isDecimal("0"));
System.out.println("正の整数:" + isDecimal("123"));
System.out.println("負の整数:" + isDecimal("-123"));
System.out.println("正の小数:" + isDecimal("123.1"));
System.out.println("負の小数:" + isDecimal("-123.1"));

【実行結果】

  • 数値以外:false
  • 0:true
  • 正の整数:true
  • 負の整数:true
  • 正の小数:true
  • 負の小数:true

正の数チェック

正の数チェックは以下の通り。

/**
 * 正の数(整数または小数)チェック
 * @param value 検証対象の値
 * @return 結果(true:数値、false:数値ではない)
 */
public static boolean isDecimal2(String value) {
    boolean result = false;

    if (value != null) {
        Pattern pattern = Pattern.compile("^([1-9]\d*|0)(\.\d+)?$");
        result = pattern.matcher(value).matches();
    }

    return result;
}

上記の関数は「0」「正の整数」「正の小数」のみ「true」を返却します。

System.out.println("数値以外:" + isDecimal2("a"));
System.out.println("0:" + isDecimal2("0"));
System.out.println("正の整数:" + isDecimal2("123"));
System.out.println("負の整数:" + isDecimal2("-123"));
System.out.println("正の小数:" + isDecimal2("123.1"));
System.out.println("負の小数:" + isDecimal2("-123.1"));

【実行結果】

  • 数値以外:false
  • 0:true
  • 正の整数:true
  • 負の整数:false
  • 正の小数:true
  • 負の小数:false

負の数チェック

負の数チェックは以下の通り。

/**
 * 負の数(整数または小数)チェック
 * @param value 検証対象の値
 * @return 結果(true:数値、false:数値ではない)
 */
public static boolean isDecimal3(String value) {
    boolean result = false;

    if (value != null) {
        Pattern pattern = Pattern.compile("^(-[1-9]\d*|0)(\.\d+)?$");
        result = pattern.matcher(value).matches();
    }

    return result;
}

上記の関数は「負の整数」「負の小数」のみ「true」を返却します。

System.out.println("数値以外:" + isDecimal3("a"));
System.out.println("0:" + isDecimal2("0"));
System.out.println("正の整数:" + isDecimal3("123"));
System.out.println("負の整数:" + isDecimal3("-123"));
System.out.println("正の小数:" + isDecimal3("123.1"));
System.out.println("負の小数:" + isDecimal3("-123.1"));

【実行結果】

  • 数値以外:false
  • 0:true
  • 正の整数:false
  • 負の整数:true
  • 正の小数:false
  • 負の小数:true

最後に

本記事ではJavaで数値チェックを実装する方法を紹介しました。

【関連記事】

よろしければ記事の評価をお願いします

© 2020 ITを分かりやすく解説