杰瑞科技汇

java正则小数点后两位小数点

Java 正则表达式匹配小数点后两位

在 Java 中,你可以使用正则表达式来匹配小数点后恰好有两位小数的数字,以下是几种常见的实现方式:

java正则小数点后两位小数点-图1
(图片来源网络,侵删)

匹配正数(包括整数和小数)

import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class DecimalRegex {
    public static void main(String[] args) {
        String regex = "^\\d+(\\.\\d{2})?$";
        Pattern pattern = Pattern.compile(regex);
        String[] testCases = {
            "123",      // 匹配(整数)
            "123.45",   // 匹配
            "123.4",    // 不匹配(只有一位小数)
            "123.456",  // 不匹配(三位小数)
            ".45",      // 不匹配(没有整数部分)
            "123.",     // 不匹配(没有小数部分)
            "-123.45",  // 不匹配(负数)
            "abc"       // 不匹配(非数字)
        };
        for (String testCase : testCases) {
            Matcher matcher = pattern.matcher(testCase);
            System.out.println(testCase + ": " + matcher.matches());
        }
    }
}

匹配正数且必须有两位小数

String regex = "^\\d+\\.\\d{2}$";

匹配包括负数的数字

String regex = "^-?\\d+(\\.\\d{2})?$";

匹配包括负数且必须有两位小数

String regex = "^-?\\d+\\.\\d{2}$";

匹配科学计数法(可选)

String regex = "^-?\\d+(\\.\\d{2})?([eE][-+]?\\d+)?$";

常用正则表达式说明

  • ^ - 字符串开始
  • - 字符串结束
  • \\d - 数字(等同于[0-9])
  • - 前面的元素出现一次或多次
  • - 前面的元素出现零次或一次
  • \\. - 匹配小数点(需要转义)
  • {2} - 前面的元素恰好出现2次
  • - 可选的负号

验证示例

public static boolean isValidDecimal(String input) {
    return input.matches("^\\d+(\\.\\d{2})?$");
}

注意:如果你需要验证用户输入,建议先使用 Double.parseDouble()BigDecimal 进行数值验证,然后再用正则表达式进行格式验证。

java正则小数点后两位小数点-图2
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇