【发布时间】:2015-01-25 07:39:09
【问题描述】:
嘿,我正在为学校做一个项目。 我们必须编写一个虚拟ATM机。 您必须使用学生邮件登录。
我的问题是:如何限制点 (.) 后的字符长度?
public boolean validUsername(String username) {
Boolean oneAT = false;
for (int i=0; i < username.length(); i++) {
if (username.contains("@") && username.contains(".") &&{
oneAT = true;
}
}
return oneAT;
}
该函数检查输入的用户名是否包含 @ 和 .(点)。 有没有办法将点后的字符长度限制为三个? 否则用户可以写 johndoe@johndoemail.tugfksdoew
【问题讨论】:
-
好吧,用户也可以写
@johndoe.johndoe,这也不是一个有效的地址。捕获电子邮件地址的格式比这要复杂一些。 -
这将是使用regular expression 的好地方。
-
请注意,有 / 将是超过 3 个字符的顶级域。见en.wikipedia.org/wiki/…
-
@Obicere 唯一的问题是真正有效电子邮件的正则表达式非常复杂。我很确定这超出了学生的范围。 OP:你的作业中是否有关于什么是有效电子邮件的具体说明?有效的电子邮件包括
john@somewhere.nz和a.b@john-doe.name和myname@mailserver.harvard-uni.edu之类的东西,所以三个字母不会起作用。别介意更复杂的电子邮件规则,它允许在@左侧出现非常奇怪的东西。
标签: java string-length limiting