无效的电子邮件地址字符串检查(学校)

时间:2017-03-21 23:48:14

标签: java contains

我正在学校开展一个项目,我需要验证一个arraylist的5个电子邮件地址。

我必须验证所有电子邮件都有' @'和'。'而且没有空间。现在我只想尝试第一部分。

这是我到目前为止所说的,当它调用时它会拉出所有5个电子邮件地址。似乎包含将检查字符,并且仅在没有它的电子邮件上返回false。我不是一字寻找。只是一点方向。

public static void print_invalid_emails()
{
    for (Student s : myRoster )
    {
        if(s.getEmailAddress().contains("@.") == false)
            System.out.println("Invalid Email: " + s.getEmailAddress());

    }

}        

1 个答案:

答案 0 :(得分:-1)

contains 检查字符串,只有当电子邮件地址包含true作为字符串时,您的代码才会返回"@."。尝试使用 indexOf

String email = s.getEmailAddress();

int atIndex = email.indexOf('@');

if (atIndex < 0 || email.indexOf('.', atIndex) < 0 || email.indexOf(' ') >= 0)
    System.out.println("Invalid Email: " + email);

我认为.必须在@之后的地址的“右侧部分”找到atIndex。否则,您不需要email.indexOf('.'),而是可以使用{{1}}。

您还可以通过其他方式查看电子邮件地址。 看看这篇文章,它可能很有趣: What is the best Java email address validation method?