2017-03-21 43 views
-1

我正在學校的一個項目,我需要驗證從一個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- –

回答

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

我假定.必須在ADRESS的「右側」可以發現,@後。否則,您不需要atIndex,您可以使用email.indexOf('.')代替。

你有其他方法來檢查電子郵件地址。 看看這篇文章,可能是有趣: What is the best Java email address validation method?

+0

你想教人們使用像_at_Index這樣的變量名嗎? –

+0

'if(_at_Index <0'是一個以@開頭的電子郵件正確嗎? –

+0

@ScaryWombat抱歉'_at_Index'!我想說清楚「at」的意思是「@」 – User9123

相關問題