Ecco il mio problema:java numero di telefono convalida
Creare un costruttore per un numero di telefono data una stringa nella forma xxx-xxx-xxxx o xxx-xxxx per un numero locale. Genera un'eccezione se il formato non è valido.
Quindi stavo pensando di convalidarlo usando un'espressione regolare, ma non so se lo sto facendo correttamente. Inoltre che tipo di eccezione dovrei lanciare? Devo creare la mia eccezione?
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;
}
Ciao scusa, sì questo è compito. Per questo compito l'unico formato valido è xxx-xxx-xxxx e xxx-xxxx, tutti gli altri formati (xxx) xxx-xxxx o xxxxxxxxxx non sono validi in questo caso.
Vorrei sapere se la mia espressione regolare è corretta
è questo compito? dovrebbe essere etichettato come tale se così ... – Brabster
Domanda ovvia: sei sicuro che il tuo formato di numero di telefono intercetta qualsiasi numero di telefono che gli utenti potrebbero voler inserire? Niente è più frustrante di un sistema semi-intelligente che rifiuta di accettare dati perfettamente validi. (Oh, e se questo è solo compito a casa - non importa.) – Tomalak
Completamente d'accordo con @Tomalak. Se si tratta di un sistema di produzione, la risposta corretta consiste nel rimuovere tutti i caratteri non numerici e convalidare il numero risultante. –