Aquí está mi problema:java validación del número de teléfono
Crear un constructor para un número de teléfono dado una cadena de la forma xxx-xxx-xxxx o xxx-xxxx para un número local. Lanza una excepción si el formato no es válido.
Así que estaba pensando en validarlo usando una expresión regular, pero no sé si lo estoy haciendo correctamente. Además, ¿qué tipo de excepción tendría que lanzar? ¿Debo crear mi propia excepción?
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;
}
Hola lo siento, sí, esta es la tarea. Para estas asignaciones, el único formato válido son xxx-xxx-xxxx y xxx-xxxx, todos los demás formatos (xxx) xxx-xxxx o xxxxxxxxxx no son válidos en este caso.
me gustaría saber si mi expresión regular es correcto
es esta tarea? debería etiquetarse como tal en caso afirmativo ... – Brabster
Pregunta obvia: ¿Está seguro de que el formato de su número de teléfono capta cualquier variedad de número de teléfono que los usuarios deseen introducir? Nada es más frustrante que un sistema medio inteligente que se niega a aceptar datos perfectamente válidos. (Ah, y si esto es solo tarea, no importa.) – Tomalak
Totalmente de acuerdo con @Tomalak. Si se trata de un sistema de producción, la respuesta correcta es eliminar cualquier carácter no numérico y validar el número resultante. –