# String mit Emailadresse prüfen



## beta20 (30. Jun 2016)

Hallo zusammen, 

ich habe einen String s = "";

Was ich nun prüfen möchte:
a) Alle Emailadresse splitten. Split ist möglich mit "," oder ";"
b) Nun möchte ich prüfen, ob die Emailadresse stimmen, also der Konvention entsprechen: test@email.com

Wie kann ich das machen?


----------



## InfectedBytes (30. Jun 2016)

z.B. mit Regular Expressions, siehe https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html


----------



## beta20 (30. Jun 2016)

und wie nutze ich das genau?


----------



## InfectedBytes (30. Jun 2016)

Hast du dir den Link überhaupt angeguckt? Da steht doch direkt am Anfang ein Beispiel:


> A typical invocation sequence is thus
> 
> ```
> Pattern p = Pattern.compile("a*b");
> ...


Kombiniert mit einer einfachen google suche: email regex
bekommst du dann auch den passenden regulären ausdruck: 
	
	
	
	





```
"^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,6}$"
```


----------



## beta20 (30. Jun 2016)

ich habe aber einen String, der so aussehen kann:

String s = "test@web.de;test2@web.de;test3@web.de".....


----------



## InfectedBytes (30. Jun 2016)

Dann splittest du ihn eben vorher (mit der split Methode von String)
oder du passt den RegEx an.


----------



## tommysenf (30. Jun 2016)

```
public static boolean isValidEmailAddress(String email) {
   boolean result = true;
   try {
      javax.mail.InternetAddress emailAddr = new javax.mail.InternetAddress(email);
      emailAddr.validate();
   } catch (javax.mail.AddressException ex) {
      result = false;
   }
   return result;
}
```
*



*


----------



## mrBrown (30. Jun 2016)

tommysenf hat gesagt.:


> ```
> public static boolean isValidEmailAddress(String email) {
> boolean result = true;
> try {
> ...


Damit sind auch `user@[10.9.8.7]` und `user@localhost` und `bla@bla` und `;...'[EMAIL]foo@xxx.asd.sd[/EMAIL],` valide


----------



## tommysenf (30. Jun 2016)

mrBrown hat gesagt.:


> Damit sind auch user@[10.9.8.7] und user@localhost und bla@bla und ;...'foo@xxx.asd.sd, valide



Was ja nach RFC und je nach entsprechendem use case auch völlig ok ist.


----------



## mrBrown (30. Jun 2016)

tommysenf hat gesagt.:


> Was ja nach RFC und je nach entsprechendem use case auch völlig ok ist.



In den meisten aber nicht, deshalb sollte man das dazu sagen


----------



## beta20 (1. Jul 2016)

danke.
Der Code prüft dann auch mehrere Emailadressen, die getrennt durch ";" oder "," sind?


----------



## mrBrown (1. Jul 2016)

beta20 hat gesagt.:


> danke.
> Der Code prüft dann auch mehrere Emailadressen, die getrennt durch ";" oder "," sind?



Nein, das splitten musst du selbst machen


----------

