2017-03-21 17 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); 

私は.@後、アドレスの「右側」に記載されていなければならないと仮定しました。そうでない場合は、atIndexは不要で、代わりにemail.indexOf('.')を使用できます。

他の方法でメールアドレスを確認できます。 が、それは面白いかもしれ、この記事をチェックアウト:あなたが持つことになりますので、 What is the best Java email address validation method?

+0

'_at_Index'のような変数名を使用するように教えたいですか? –

+0

'(@at_Index <0'が' @ 'で始まる電子メールである場合) –

+0

@ScaryWombatごめん、 '_at_Index'!" at "は" @ "を意味します。 – User9123

関連する問題