杰瑞科技汇

Java正则如何限定只能是数字?

Java正则表达式:只能是数字

在Java中,如果你想使用正则表达式来验证一个字符串是否只包含数字,有几种方法可以实现:

Java正则如何限定只能是数字?-图1
(图片来源网络,侵删)

简单数字验证(0-9)

String regex = "^[0-9]+$";
  • ^ 表示字符串开始
  • [0-9] 表示任意数字字符
  • 表示一个或多个
  • 表示字符串结束

使用 \d 简化表示

String regex = "^\\d+$";
  • \d[0-9] 的简写形式
  • 需要双反斜杠 \\ 因为在Java字符串中反斜杠是转义字符

完整示例代码

import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class NumberValidator {
    public static boolean isNumeric(String str) {
        String regex = "^\\d+$";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(str);
        return matcher.matches();
    }
    public static void main(String[] args) {
        System.out.println(isNumeric("12345"));    // true
        System.out.println(isNumeric("12a45"));    // false
        System.out.println(isNumeric(" 123"));     // false (包含空格)
        System.out.println(isNumeric(""));         // false (空字符串)
    }
}

其他常见变体

允许正负整数

String regex = "^-?\\d+$";

允许浮点数

String regex = "^\\d+(\\.\\d+)?$";

只允许特定长度的数字

// 例如5位数字
String regex = "^\\d{5}$";

允许数字开头和结尾的空格(然后去除空格验证)

String regex = "^\\s*\\d+\\s*$";

选择哪种正则表达式取决于你的具体需求,最基本的"只能是数字"验证使用 ^\\d+$ 就足够了。

Java正则如何限定只能是数字?-图2
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇