Guten Tag,
ich soll als Übungsaufgabe eine Klasse "Email" implementieren, die mithilfe einer lokalen Klasse überprüft, ob die angegebenen Eingaben richtig sind(den Konventionen für Emails entsprechen).
Meine Datei Email.java:
Und die Datei TestEmail.java
Wo ist der Fehler, also ich bin mir net sicher, wie das mit den Regulären Ausdrücken funktioniert, das sollte man sich mithilfe der API anlesen, das wurde im Buch nicht erläutert, darum ist das hier so der erste Versuch, wie ich das verstanden hatte.
Aber eigentlich müsste doch bei der Methode "e1.senden()" eine Ausgabe erfolgen, oder?
Grüße
ich soll als Übungsaufgabe eine Klasse "Email" implementieren, die mithilfe einer lokalen Klasse überprüft, ob die angegebenen Eingaben richtig sind(den Konventionen für Emails entsprechen).
Meine Datei Email.java:
Code:
import java.util.regex.*;
public class Email
{
private String betreff;
private String text;
private String empfaenger;
private String absender;
public Email(String empfaenger, String absender, String betreff, String text)
{
this.empfaenger = empfaenger;
this.absender = absender;
this.betreff = betreff;
this.text = text;
}
public void senden()
{
class InternetMailAddress
{
private boolean isValid(String address)
{
// Prüfung der einzelnen Kriterien: - genau ein @
// - nur a-z,A-Z,0-9,_,.
// - mindestens 1 Zeichen für Empfängername bzw. Server
// - beginnen mit einem Zeichen, das nicht @ oder * ist
// - @servername darf wegfallen, wenn das letze Zeichen ein * ist, dann wird automatisch @it-designers.de angehängt
boolean a = Pattern.matches(address,"$\\*"); // Wenn letztes Zeichen ein *
if(a) // ist, dann ersetzen
{
StringBuffer sb = new StringBuffer(address);
sb.deleteCharAt(sb.length());
sb.append("@it-designers.de");
address= sb.toString();
}
boolean b = Pattern.matches(address,"[a-zA-Z0-9\\._]+@[a-zA-Z0-9\\._]");
if(b)
{
return true;
}
return false;
}
}
InternetMailAddress refTest = new InternetMailAddress();
if(refTest.isValid(empfaenger) && refTest.isValid(absender))
{
System.out.println("Absender: " + absender);
System.out.println("Empfaenger: " + empfaenger +"\nBetreff: " + betreff +"\nText: " + text);
}
}
}
Und die Datei TestEmail.java
Code:
public class TestEmail
{
public static void main (String [] args)
{
Email e1 = new Email ("Klaus.Gross*", "Lotte.Klein@gmz.de", "Hallo", "Hallo Welt");
e1.senden();
Email e2 = new Email ("Klaus.Gross*", "Lotte.Kleingmz.de", "Hallo", "Hallo Welt");
e2.senden();
}
}
Wo ist der Fehler, also ich bin mir net sicher, wie das mit den Regulären Ausdrücken funktioniert, das sollte man sich mithilfe der API anlesen, das wurde im Buch nicht erläutert, darum ist das hier so der erste Versuch, wie ich das verstanden hatte.
Aber eigentlich müsste doch bei der Methode "e1.senden()" eine Ausgabe erfolgen, oder?
Grüße