Поскольку String.split
совпадений на основе регулярного выражения , @.
означает, что он ищет два символа в строке (либо не ) символ один раз). И, .
в регулярных выражениях - это специальный символ, означающий «что-нибудь»:
@. = "@ and then any character"
В вашем случае это соответствует "@g" и , а не точка.
Вместо этого вы хотите:
String[] pattens = email.split("[@.]");
Квадратные скобки, []
, создают класс символов, который представляет все допустимые символы, которым может соответствовать одна позиция. Итак, вам нужно соответствовать "@
" или ".
". Символ .
не должен быть экранирован внутри класса символа.