判断字符串中的字符是不是数字 和正则表达式

package com.jt.test2;

import java.util.regex.Pattern;

/**
 * User: ldj
 * Date: 2022/3/15
 * Time: 10:09
 * Description: 检验数字字符
 */
public class IsNumberDemo {
    public static void main(String[] args) {
        System.out.println("isNumber1:" + isNumber1("45425219215542415")); //true
        System.out.println("isNumber2:" + isNumber1("45425219215542415")); //true
        System.out.println("isNumber3:" + isNumber1("45425219#15542415")); //false
        System.out.println("isNumber4:" + isNumber1("45425219#15542415")); //false
    }

    //方法1 正则表达式
    private static final Pattern MATCH_PATTERN = Pattern.compile("-?\\d+(\\.\\d+)?");

    public static boolean isNumber1(String str) {
        return str != null && MATCH_PATTERN.matcher(str).matches();
    }

    //方法2 Stream流 (推荐)
    public static boolean isNumber2(String str) {
        return str != null && str.chars().allMatch(Character::isDigit);
    }

    //方法3 char码值匹配
    public static boolean isNumber3(String str) {
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            if (c < 48 || c > 57) {
                return false;
            }
        }
        return true;
    }

    //方法4 使用Long封装类的parse方法
    public static boolean isNumber4(String str) {
        try {
            Long.parseLong(str);
            return true;
        } catch(Exception e){
            return false;
        }
    }
}

后续补充:

^表示行的开头,^\d表示必须以数字开头
$表示行的结束,\d$表示必须以数字结束
\反斜杠 用来转义特殊字符 

{n} 表示n个字符 如:\d{3}表示匹配3个数字,例如'010'
{n,m} 表示n-m个字符

\d 等同于[0-9],匹配一个数字
\w 等同于[0-9A-Z_a-z]可以匹配一个字母或数字

. 可以匹配任意字符
* 表示任意个字符(包括0个)
+ 表示至少一个字符
? 表示0个或1个字符


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值