Java 复杂数据校验类,可完成数据类型,长短,大小,正则,逻辑,依赖等校验方式
时间: 2024-05-05 14:17:03 浏览: 72
,以下是一个简单的示例:
```java
public class DataValidator {
/**
* 校验字符串是否为空
* @param str 待校验字符串
* @return 是否为空
*/
public static boolean isEmpty(String str) {
return str == null || str.trim().isEmpty();
}
/**
* 校验字符串长度是否在指定范围内
* @param str 待校验字符串
* @param minLen 最小长度
* @param maxLen 最大长度
* @return 是否在指定范围内
*/
public static boolean isLengthInRange(String str, int minLen, int maxLen) {
int len = str.length();
return len >= minLen && len <= maxLen;
}
/**
* 校验数字是否在指定范围内
* @param num 待校验数字
* @param minNum 最小值
* @param maxNum 最大值
* @return 是否在指定范围内
*/
public static boolean isNumInRange(int num, int minNum, int maxNum) {
return num >= minNum && num <= maxNum;
}
/**
* 校验字符串是否符合正则表达式
* @param str 待校验字符串
* @param regex 正则表达式
* @return 是否符合正则表达式
*/
public static boolean matchesRegex(String str, String regex) {
return str.matches(regex);
}
/**
* 校验逻辑表达式是否为真
* @param expression 待校验逻辑表达式
* @return 是否为真
*/
public static boolean isExpressionTrue(boolean expression) {
return expression;
}
/**
* 校验依赖关系是否成立
* @param dependentValue 依赖值
* @param dependentField 依赖字段
* @param targetValue 目标值
* @param targetField 目标字段
* @return 是否成立
*/
public static boolean isDependencyValid(int dependentValue, String dependentField, int targetValue, String targetField) {
if (dependentValue > 0 && targetValue > 0) {
return true;
} else if (dependentValue == 0 && targetValue == 0) {
return true;
} else {
System.out.println(dependentField + "和" + targetField + "的值必须同时为0或同时大于0");
return false;
}
}
}
```
上述类定义了多个静态方法,分别用于不同的校验方式。具体使用时,可以根据需要调用相应的方法进行校验。例如:
```java
String name = "张三";
if (DataValidator.isEmpty(name)) {
System.out.println("姓名不能为空");
}
if (!DataValidator.isLengthInRange(name, 2, 4)) {
System.out.println("姓名长度必须在2到4之间");
}
int age = 20;
if (!DataValidator.isNumInRange(age, 0, 120)) {
System.out.println("年龄必须在0到120之间");
}
String email = "test@test.com";
if (!DataValidator.matchesRegex(email, "\\w+@\\w+\\.\\w+")) {
System.out.println("邮箱格式不正确");
}
boolean isMale = true;
if (!DataValidator.isExpressionTrue(isMale)) {
System.out.println("性别必须是男或女");
}
int salary = 5000;
int bonus = 2000;
if (!DataValidator.isDependencyValid(salary, "基本工资", bonus, "奖金")) {
System.out.println("工资和奖金的值必须同时为0或同时大于0");
}
```
以上示例演示了如何使用 DataValidator 类完成不同类型的数据校验。在实际中,可以根据具体需求对校验方法进行扩展和修改。
阅读全文