2017-03-21 1 views
-1

Je travaille sur un projet à l'école et je dois vérifier 5 adresse e-mail d'un arraylist.vérification de chaîne d'adresse email invalide (pour l'école)

Je dois vérifier que tous les emails ont '@' et '.' et n'ont pas d'espace. En ce moment, j'essaie juste de faire tomber la première partie.

C'est ce que j'ai jusqu'ici et quand il appelle il tire toutes les 5 adresses e-mail. Il semble que le contenu vérifie les caractères et renvoie seulement faux sur les emails qui ne l'ont pas. Je ne cherche pas de mot pour la réponse de mot. Juste un peu de direction.

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

    } 

}   
+0

Il devrait être assez évident qu'aucun de votre adresse e-mail ressemble * foo @ .com * avec un '@ .' juste à côté de l'autre, vous aurez ainsi pour diviser vos tests pour '@' et '.' – Filburt

+0

écrivez d'abord votre logique sur le papier –

+1

Et n'essayez pas de deviner ce que contient. Lisez le javadoc, soigneusement. https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#contains-java.lang.CharSequence- –

Répondre

-1

contains chèque pour une chaîne, ici votre code retournera true seulement si l'adresse e-mail contient "@." en tant que chaîne. Essayez d'utiliser 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); 

Je suppose que le . doit être trouvé dans la « partie droite » de l'adresse, après la @. Sinon, vous n'avez pas besoin de atIndex et vous pouvez utiliser email.indexOf('.') à la place.

Vous avez d'autres façons de vérifier l'adresse e-mail. Vérifiez ce poste, il peut être intéressant: What is the best Java email address validation method?

+0

voulez-vous apprendre aux gens à utiliser des noms de variables comme '_at_Index'? –

+0

'if (_at_Index <0' est un email commençant par un' @ 'correct? –

+0

@ScaryWombat désolé pour le' _at_Index'! Je voulais préciser que "at" signifie "@" – User9123