下面是一个示例解决方法,使用了正则表达式来验证版本号是否符合要求:
import java.util.regex.Pattern;
public class VersionValidator {
public static void main(String[] args) {
String version = "5.0";
if (isValidVersion(version)) {
System.out.println("版本号有效");
} else {
System.out.println("版本号无效");
}
}
public static boolean isValidVersion(String version) {
// 定义版本号的正则表达式
String pattern = "(\\d+)\\.(\\d+)(\\.(\\d+))?";
// 使用正则表达式匹配版本号
boolean isMatch = Pattern.matches(pattern, version);
if (isMatch) {
String[] parts = version.split("\\.");
// 获取主版本号、次版本号和修订版本号
int majorVersion = Integer.parseInt(parts[0]);
int minorVersion = Integer.parseInt(parts[1]);
int patchVersion = parts.length > 2 ? Integer.parseInt(parts[2]) : 0;
// 检查版本号是否符合要求
if (majorVersion >= 5 || minorVersion >= 5 || patchVersion != 0) {
return false;
} else {
return true;
}
} else {
return false;
}
}
}
在上面的示例中,我们首先定义了一个正则表达式模式 (\\d+)\\.(\\d+)(\\.(\\d+))?
来匹配版本号。然后使用 Pattern.matches()
方法来验证版本号是否符合该模式。
如果版本号匹配成功,我们将获取主版本号、次版本号和修订版本号,并对它们进行检查。根据题目要求,如果主版本号大于等于 5、次版本号大于等于 5 或者修订版本号不等于 0,则版本号无效。否则,版本号有效。
在示例中,我们验证了版本号 "5.0",输出结果为 "版本号无效"。您可以根据需要修改并验证其他版本号。