结合接口和Java的内置数据类,编写一个程序,这个程序有两个接口和若干个类,能实现:1.接口1对应的是一种字符串的检验方法,这个方法可以呈现出两种功能,既能对用户输入的数据是不是手机号进行验证(如果是手机号,打印:“您输入的格式正确!”,如果不是手机号,打印“您输入的不是手机号,请重新输入!”),也能对用户输入的数据是不是邮箱进行验证(如果是邮箱,打印:“您输入的邮箱格式正确!”,如果不是邮箱,打印“您输入的不是邮箱,请重新输入!”)
时间: 2024-03-31 17:34:34 浏览: 41
java验证email、电话号码等格式
4星 · 用户满意度95%
下面是一个简单的实现,使用了两个接口 `PhoneValidator` 和 `EmailValidator`,以及两个实现类 `PhoneValidatorImpl` 和 `EmailValidatorImpl`。
```java
import java.util.regex.Pattern;
interface PhoneValidator {
boolean validate(String phone);
}
interface EmailValidator {
boolean validate(String email);
}
class PhoneValidatorImpl implements PhoneValidator {
@Override
public boolean validate(String phone) {
Pattern pattern = Pattern.compile("^1[3456789]\\d{9}$");
if (pattern.matcher(phone).matches()) {
System.out.println("您输入的格式正确!");
return true;
} else {
System.out.println("您输入的不是手机号,请重新输入!");
return false;
}
}
}
class EmailValidatorImpl implements EmailValidator {
@Override
public boolean validate(String email) {
Pattern pattern = Pattern.compile("^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$");
if (pattern.matcher(email).matches()) {
System.out.println("您输入的邮箱格式正确!");
return true;
} else {
System.out.println("您输入的不是邮箱,请重新输入!");
return false;
}
}
}
public class Main {
public static void main(String[] args) {
PhoneValidator phoneValidator = new PhoneValidatorImpl();
EmailValidator emailValidator = new EmailValidatorImpl();
String phone1 = "13912345678";
String phone2 = "12345678901";
String email1 = "abc@def.com";
String email2 = "123@456";
phoneValidator.validate(phone1);
phoneValidator.validate(phone2);
emailValidator.validate(email1);
emailValidator.validate(email2);
}
}
```
在上面的示例中,我们定义了两个接口 `PhoneValidator` 和 `EmailValidator`,分别用于验证手机号和邮箱。然后,我们创建了两个实现类 `PhoneValidatorImpl` 和 `EmailValidatorImpl`,分别实现了这两个接口中的方法。在这些方法中,我们使用了正则表达式来验证输入的数据是否符合要求。
在主函数中,我们创建了 `PhoneValidatorImpl` 和 `EmailValidatorImpl` 的实例,并对一些字符串进行了验证。如果输入的字符串符合要求,就会输出相应的提示信息;如果不符合要求,则会输出错误信息。
阅读全文