ограничивающие символы после точки - Java

1

Эй, я делаю проект для школы. Мы должны закодировать виртуальную машину 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;
    }

Функция проверяет, введенное имя пользователя содержит символы @и. (Точка). Есть ли способ ограничить длину символа до трех после точки? В противном случае пользователь может написать [email protected]

  • 0
    Ну, пользователь также может написать @johndoe.johndoeкоторый также не является допустимым адресом. Поймать формат адреса электронной почты немного сложнее, чем это.
  • 2
    Это было бы отличным местом для использования регулярного выражения .
Показать ещё 3 комментария
Теги:
string-length

3 ответа

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, если это так.

  • 0
    Это выражение не соответствует моему реальному адресу электронной почты ...
0

Это должно быть полезно:

if (username.contains("@") && username.contains(".") && ((username.length() - username.lastIndexOf(".") <= 3)) {

По сути, он проверяет, меньше или меньше разницы длины строки и последнего вхождения точки. Это также обрабатывает электронные письма, такие как [email protected].

0

Чтобы ответить на конкретный вопрос, вы можете ограничить размер, проверив размер подстроки после точки (предполагая, что у вас есть только точка в строке):

afterDot = username.substring(username.indexOf("."))

Но, как указано ZouZou, вы должны правильно проверить свой адрес электронной почты (есть еще несколько вещей, чтобы проверить). Взгляните на пример здесь: http://examples.javacodegeeks.com/core-java/util/regex/matcher/validate-email-address-with-java-regular-expression-example/

Ещё вопросы

Сообщество Overcoder
Наверх
Меню