我的问题是:如何限制点(。)后的字符长度?
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;
}
该函数检查用户名是否输入,包含@和a。(点)。 有没有办法在点后限制字符长度为3? 否则用户可以写johndoe@johndoemail.tugfksdoew
答案 0 :(得分:2)
使用正则表达式验证用户名更容易
public boolean validUsername(String username) {
Pattern pattern = Pattern.compile("^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$");
Matcher matcher = pattern.matcher(username);
return matcher.matches();
}
表达式验证用户名是否为有效的电子邮件地址,如果是,则返回true。
答案 1 :(得分:0)
要回答具体问题,您可以通过检查点后子字符串的大小来限制大小(假设您只在字符串中有点):
afterDot = username.substring(username.indexOf("."))
但正如ZouZou所说,您应该正确验证您的电子邮件地址(还有其他几项需要检查)。看看这里的例子: http://examples.javacodegeeks.com/core-java/util/regex/matcher/validate-email-address-with-java-regular-expression-example/
答案 2 :(得分:0)
这应该会有所帮助:
if (username.contains("@") && username.contains(".") && ((username.length() - username.lastIndexOf(".") <= 3)) {
基本上它检查字符串长度和最后一次出现的点的差异是否小于或等于3.这也处理电子邮件,如john.doe@yahoo.com。