Voici mon problème:téléphone java numéro validation
Créez un constructeur pour un numéro de téléphone d'une chaîne sous la forme xxx-xxx-xxxx ou xxx-xxxx pour un numéro local. Lève une exception si le format n'est pas valide. Je pensais donc à le valider en utilisant une expression régulière, mais je ne sais pas si je le fais correctement. Aussi quel genre d'exception aurais-je à jeter? Ai-je besoin de créer ma propre exception?
public TelephoneNumber(String aString){
if(isPhoneNumberValid(aString)==true){
StringTokenizer tokens = new StringTokenizer("-");
if(tokens.countTokens()==3){
areaCode = Integer.parseInt(tokens.nextToken());
exchangeCode = Integer.parseInt(tokens.nextToken());
number = Integer.parseInt(tokens.nextToken());
}
else if(tokens.countTokens()==2){
exchangeCode = Integer.parseInt(tokens.nextToken());
number = Integer.parseInt(tokens.nextToken());
}
else{
//throw an excemption here
}
}
}
public static boolean isPhoneNumberValid(String phoneNumber){
boolean isValid = false;
//Initialize reg ex for phone number.
String expression = "(\\d{3})(\\[-])(\\d{4})$";
CharSequence inputStr = phoneNumber;
Pattern pattern = Pattern.compile(expression);
Matcher matcher = pattern.matcher(inputStr);
if(matcher.matches()){
isValid = true;
}
return isValid;
}
Salut désolé, oui ce sont les devoirs. Pour ces affectations, les seuls formats valides sont xxx-xxx-xxxx et xxx-xxxx, tous les autres formats (xxx) xxx-xxxx ou xxxxxxxxxx ne sont pas valides dans ce cas.
Je voudrais savoir si mon expression régulière est correcte
est ce devoir? doivent être étiquetés en tant que telle, si oui ... – Brabster
question évidente: Etes-vous sûr que votre format de numéro de téléphone attire une variété de numéro de téléphone que vos utilisateurs pourraient vouloir entrer? Rien n'est plus frustrant qu'un système à demi-intelligent qui refuse d'accepter des données parfaitement valables. (Oh, et si cela est seulement devoirs - jamais l'esprit.) – Tomalak
Entièrement d'accord avec @Tomalak. S'il s'agit d'un système de production, la réponse correcte est de supprimer tous les caractères non numériques et de valider le résultat. –