我正在学校开展一个项目,我需要验证一个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());
}
}
答案 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?