我正在为学校打包一个程序,其中包含一系列学生,包括他们的电子邮件地址。部分程序需要打印出无效的电子邮件地址。我一直在使用.contains()方法,但它似乎只是部分工作。
public static void print_invalid_emails()
{
for(Student s : mStudents)
{
if(s.getEmailAddress().contains("@") && s.getEmailAddress().contains(".") && !s.getEmailAddress().contains(" "))
{
continue;
}
else
{
System.out.println(s.getEmailAddress());
}
}
}
检查以下电子邮件地址时:
John1989@gmail.com
Erickson_1990 @ gmailcom
The_lawyer99yahoo.com
Erin.black@comcast.net
它只打印Erickson_1990 @ gmailcom但不打印The_lawyer99yahoo.com。
知道为什么会这样吗?
答案 0 :(得分:0)
似乎对我有用。
另一方面,您可以使用此功能验证电子邮件ID。 试试吧
public static boolean validateEmail(String email) {
String email_pattern
= "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@"
+ "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
Pattern pattern = Pattern.compile(email_pattern);
Matcher matcher = pattern.matcher(email);
return (matcher.matches());
}
如果电子邮件有效,此函数将返回true
,否则返回false