java - 限制点后的字符 - java

标签 java string-length limiting

嘿,我正在为学校做一个项目。 我们必须编写一个虚拟 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

最佳答案

使用正则表达式验证用户名更容易

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。

关于java - 限制点后的字符 - java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27158263/

相关文章:

sql-server - SQL Server 2008 空字符串与空格

java - 将 Objective-C 编译为 Java

java - if 条件中的字符串比较总是出错

java - 根据 XML 验证多个 XSD

java - Tomcat - JRE_HOME 环境未正确定义

python - 限制两个数字之间的输入并同时检查输入是否为数字

c# - 将冗长的字符串(作为参数)传递到控制台应用程序

mongodb - 选择mongodb中的字符串长度

java - 如何限制 20 个 JCombobox 的 1 个选择选项的最大选择数量? javafor 前

c - 将输入过滤为仅数字。 C