【发布时间】:2011-06-23 22:42:09
【问题描述】:
我想在 Java 中创建一个自定义数据类型,例如数据类型 Email,具有以下方法 isValidate(String email)、isEmailExist(String email)、getDomain(String email)、get Id(String email),就像 Integer java中的类。
Integer 是一个类,我可以如下初始化 Integer 类的对象:
Integer i = 100;
我创建了我的班级电子邮件,我想如下初始化它
Email e = "sam";
如何在我的电子邮件类中执行此功能。
导入 java.util.StringTokenizer; 导入 java.util.regex.Matcher; 导入 java.util.regex.Pattern;公开课邮箱 { 私人字符串电子邮件; 公共电子邮件(字符串电子邮件) { 这.email=电子邮件; }
Email() { } public Boolean isvalid(String email) {字符串 lastToken = null; 模式 p = Pattern.compile(".+@.+\.[a-z]+"); // 将给定的字符串与模式匹配 匹配器 m = p.matcher(email); // 检查是否找到匹配项 boolean matchFound = m.matches(); StringTokenizer st = new StringTokenizer(email, "."); 而 (st.hasMoreTokens()) { lastToken = st.nextToken(); }
if (matchFound && lastToken.length() >= 2 && email.length() - 1 != lastToken.length()) { 返回真; } 别的 返回假; } 公共字符串 toString() { 返回电子邮件; } }
谢谢
【问题讨论】:
-
您需要学习在 Java 中创建类的基础知识。这是一个在线教程:Classes in Java
-
您不会能做的唯一事情是
Email e = "sam";。您将需要Email e = new Email("sam");。 -
我认为 OP 正在询问如何做一些被称为“隐式运算符重载”的事情。毕竟,这将使这个问题成为一个不那么初学者的问题。在 Java 中,这在使用包装器类型时很明显。例如,当您将文字分配给 java.lang.Integer 时。答案是 Java 不支持创建允许这样做的自定义类型。所以你不能做 Email email = "someone@example.com"。
标签: java