Итак, я думал проверить его с помощью регулярного выражения, но я не знаю, правильно ли я это делаю.
Это действительно выглядит слишком сложным. Кроме того, соответствие xxx-xxx-xxxx
или xxx-xxxx
, где x
- это цифра, может быть лучше выполнено с помощью "(\\d{3}-){1,2}\\d{4}"
. Чтобы узнать больше о регулярных выражениях, я рекомендую пройти через http://regular -expressions.info .
Кроме того, какое исключение я должен был бы бросить? Нужно ли создавать собственное исключение?
A ValidatorException
кажется прямым.
public static void isPhoneNumberValid(String phoneNumber) throws ValidatorException {
if (!phoneNumber.matches(regex)) {
throws ValidatorException("Invalid phone number");
}
}
Если по каким-то причинам вы не хотите создавать его самостоятельно, я бы, вероятно, выбрал IllegalArgumentException
, но, тем не менее, я не рекомендую этого.
Тем не менее, эта проверка, конечно, не распространяется на международные и / или внешние телефонные номера. Если это не действительно домашняя работа, я бы предложил переосмыслить валидацию.