java验证版本字符串是否符合规定如:1.0.1;java 验证 “1.0.0” 格式字符串的两大策略剖析

方法一:使用正则表达式

import java.util.regex.Pattern;

public class VersionValidator {
    // 定义版本号的正则表达式模式
    private static final String VERSION_REGEX = "^\\d+(\\.\\d+){0,2}$";
    private static final Pattern VERSION_PATTERN = Pattern.compile(VERSION_REGEX);

    /**
     * 验证版本号字符串是否符合规定
     * @param version 待验证的版本号字符串
     * @return 如果符合规定返回 true,否则返回 false
     */
    public static boolean isValidVersion(String version) {
        if (version == null) {
            return false;
        }
        return VERSION_PATTERN.matcher(version).matches();
    }

    public static void main(String[] args) {
        String validVersion = "1.0.0";
        String invalidVersion = "1.a.0";

        System.out.println(isValidVersion(validVersion)); // 输出: true
        System.out.println(isValidVersion(invalidVersion)); // 输出: false
    }
}

代码解释:
正则表达式 ^\d+(\.\d+){0,2}$:
^:表示字符串的开始。
\d+:匹配一个或多个数字。
(\.\d+):匹配一个点号后跟一个或多个数字。
{0,2}:表示前面的模式可以出现 0 到 2 次。
$:表示字符串的结束。
isValidVersion 方法:
首先检查传入的字符串是否为 null,如果是则返回 false。
然后使用 Pattern 类的 matcher 方法创建一个 Matcher 对象,并调用 matches 方法进行匹配。

方法二:手动解析字符串

public class VersionValidatorManual {
    /**
     * 验证版本号字符串是否符合规定
     * @param version 待验证的版本号字符串
     * @return 如果符合规定返回 true,否则返回 false
     */
    public static boolean isValidVersion(String version) {
        if (version == null) {
            return false;
        }
        String[] parts = version.split("\\.");
        if (parts.length < 1 || parts.length > 3) {
            return false;
        }
        for (String part : parts) {
            try {
                int num = Integer.parseInt(part);
                if (num < 0) {
                    return false;
                }
            } catch (NumberFormatException e) {
                return false;
            }
        }
        return true;
    }

    public static void main(String[] args) {
        String validVersion = "1.0.0";
        String invalidVersion = "1.a.0";

        System.out.println(isValidVersion(validVersion)); // 输出: true
        System.out.println(isValidVersion(invalidVersion)); // 输出: false
    }
}

代码解释:
split 方法:使用 split 方法将版本号字符串按点号分割成多个部分。
检查部分数量:确保分割后的部分数量在 1 到 3 之间。
解析每个部分:尝试将每个部分解析为整数,如果解析失败或解析结果为负数,则返回 false。
这两种方法都可以有效地验证 1.0.0 格式的字符串是否符合规定,你可以根据实际需求选择合适的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值