Warum kriege ich hier eine IndexOutOfBounce?

... komplette Frage anzeigen

3 Antworten

"ArrayOutOFBounds" bedeutet, dass du in einem Array auf einen Wert mit einem Index zugreifen willst, der zu hoch / zu niedrig ist und daher nicht existiert.

System.out.println(s2[0] + ""); // ArrayOutOfBounce

In der Zeile solltest du dir also mal eine Zeile davor (per Debugger) angucken, was in s2 drin ist und ob s2 überhaupt Elemente enthält.

Und du kannst mit Regex-Ausdrücken viel eleganter und sicherer überprüfen, ob eine Email-Adresse gültig ist.

http://elijahmanor.com/regular-expressions-in-coffeescript-are-awesome/

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Loernex
12.11.2015, 14:30

Das habe ich schon getan, ist leer obwohl der s[1] String einen Inhalt hat und diesen ausgibt. Irgendetwas beim spliten schmeißt da nen Fehler

0

Oben hast du geschrieben

String[] s = email.split("@");

unten

String s2 = s[1].split(".");

Sieht so aus, als fehlten dort Klammern.

Ich würde dir raten, E-Mail-Adressen mittels regulärem Ausdruck zu prüfen (gibt es bestimmt für Java). Mit diesen Splitts könntest du dir ein Ei legen, falls zum Beispiel ein Punkt ganz am Ende stünde.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Loernex
12.11.2015, 14:37

Klammern sind gesetzt!

0

Habe die Antwort man muss in .split eine Regular Expression angeben allso muss in die Klammern "\\\\.";

Habe jetzt eine besser Methode gefunden die Email abzufragen und zwar:

if (!Pattern.matches("^[_A-Za-z0-9-]{2,}(\\\\.[_A-Za-z0-9-]{2,})*@[A-Za-z0-9-]{2,}(\\\\.[A-Za-z0-9]{2,})*(\\\\.[A-Za-z]{2,})$",email)) { return false; }

Das ganze dann Regular Expression. Trotzdem danke für die Hilfe!

Antwort bewerten Vielen Dank für Deine Bewertung