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

问题描述:

我正在学校的一个项目,我需要验证从一个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

这应该是很明显,没有您的电子邮件地址看起来像* foo的@ .COM *用'@ .'旁边对方,所以你将有把你的测试分为'@'和'.' – Filburt

+0

首先在纸上写下你的逻辑 –

+1

并且不要试图猜测包含什么。仔细阅读javadoc。 https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#contains-java.lang.CharSequence- –

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); 

我假定.必须在ADRESS的“右侧”可以发现,@后。否则,您不需要atIndex,您可以使用email.indexOf('.')代替。

你有其他方法来检查电子邮件地址。 看看这篇文章,可能是有趣: What is the best Java email address validation method?

+0

你想教人们使用像_at_Index这样的变量名吗? –

+0

'if(_at_Index

+0

@ScaryWombat抱歉'_at_Index'!我想说清楚“at”的意思是“@” – User9123