1. 程式人生 > 實用技巧 >java 判斷字串是否是整數(純數字:正整數、負整數、0)、至少包含一位小數、數字(可以是整數或小數)

java 判斷字串是否是整數(純數字:正整數、負整數、0)、至少包含一位小數、數字(可以是整數或小數)

1.情景展示

  一共有三種需求:

  第一種:判斷字串是否是數字字串(可以是正整數、0、負整數或者小數);

  第二種:判斷字串是否是純數字,也就說我們數學上的整數(可以是正整數、0、負整數,不包含小數位);

  第三種:判斷字串是否是小數,小數點左邊必須是整數(只有一個小數點,小數點左邊是整數,右邊至少包含一位數[0-9])。

2.準備工作

/*
 * 校驗是否為空(null && "")
 * @date: 2020年08月26日 0026 10:21
 * @param: s 待校驗字串
 * @return: boolean 校驗結果
 */
public static boolean isEmpty(String s) {
    if (s == null || "".equals(s)) {
        return true;
    }
    return false;
}

3.解決方案

  判斷字串是否是數字字串

/*
 * 數字校驗
 * @attention: 可以是整數,也可以是小數
 * @date: 2020年11月12日 0012 10:45
 * @param: number 整數、小數
 * @return: boolean true-可能是整數,也可能是小數,false-既不是整數也不是小數
 */
public static boolean isNumber(String number) {
    // 非空校驗
    if (StringUtils.isEmpty(number)) return false;

    // 數字校驗(可以包含小數,可以是1,0,-1,1.1,-1.1,不能是+1.1,+1)
    Pattern pattern = Pattern.compile("^-?\\d+(\\.\\d+)?$");
    // 這個支援+1.1,+1
    // Pattern pattern = Pattern.compile("[+-]?[0-9]+(\\\\.[0-9]+)?");
    if (!pattern.matcher(number).matches()) return false;

    return true;
}

  判斷字串是否是純數字(整數)

/*
 * 整數校驗
 * @attention: 不包含小數位
 * @date: 2020年11月12日 0012 10:45
 * @param: number
 * @return: boolean
 */
public static boolean isWholeNumber(String wholeNumber) {
    // 非空校驗
    if (StringUtils.isEmpty(wholeNumber)) return false;

    // 整數校驗(可以是+1,1,0,-1)
    Pattern pattern = Pattern.compile("[+-]?[0-9]+?");
    if (!pattern.matcher(wholeNumber).matches()) return false;

    return true;
}

  判斷字串是否是小數

/*
 * 小數校驗(至少包含一位小數)
 * @attention: 不是小數,但也不能證明是整數(比如:1..2和1.2.1)
 * @date: 2020年11月12日 0012 10:51
 * @param: decimal  小數
 * @return: boolean true-至少包含一位小數,false-肯定不是小數,可能不是整數
 */
public static boolean isDecimal(String decimal) {
    // 非空校驗
    if (StringUtils.isEmpty(decimal)) return false;

    // 小數校驗(可以是+1.2,1.2,-1.2)
    Pattern pattern = Pattern.compile("[+-]?[0-9]+\\.([0-9]+)?");
    if (!pattern.matcher(decimal).matches()) return false;

    return true;
}

寫在最後

  哪位大佬如若發現文章存在紕漏之處或需要補充更多內容,歡迎留言!!!

相關推薦: