.contains(“@”)不能用于验证Java中的电子邮件格式

时间:2015-07-21 03:26:32

标签: java validation email format

我正在为学校打包一个程序,其中包含一系列学生,包括他们的电子邮件地址。部分程序需要打印出无效的电子邮件地址。我一直在使用.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。

知道为什么会这样吗?

1 个答案:

答案 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