Я хочу найти вектор объекта Сотрудник сотрудника номер мобильного телефона. Для мобильного телефона, чтобы быть действительным, существует два разных формата:Правильный ли мой код проверки?
private String valm = "[79][9][0-9]{6}";
private String valmm = "[7][7][0-9]{6}";
Я стараюсь, чтобы подтвердить номер мобильного телефона, введенного пользователем для поиска, если это действительно он ищется в векторе, в противном случае сообщение об ошибке отображается. Однако, даже если я ввожу допустимый номер, всегда отображается сообщение об ошибке.
case 3:
System.out.println ("Enter Mobile Number of Employee to Search for: ");
String m = sc.next();
Employee e = null;
if(temp.size() == 0)
System.out.println ("Database is Empty! Please Add an Employee.");
else if ((!(m.matches(valm))) | (!(m.matches(valmm))))
System.out.println ("Invalid Mobile Number. Please Try Again.");
else{
for(int i = 0; i < temp.size(); i ++){
e = temp.elementAt(i);
if(e.getMob().equals(m)){
System.out.println(e.toString());
System.out.println ("Location: " + (i + 1));
exists = true;
}
}
if(exists != true)
System.out.println ("Employee Not Found!");
System.out.println ("---------------------------------------------");
}
break;
Извините, если я совершаю глупые ошибки, я все еще учусь и получаю Java. Благодаря!
@TheLostMind На самом деле, должно быть '' &&. –
@ X.L.Ant Я попробовал это с '||' изначально, но это не решило его. Почему это должно быть '&&', если только один аргумент должен быть действительным? –
Причина, если значение соответствует первому тесту, оно никогда не будет соответствовать другому, поэтому сообщение об ошибке. Ваше значение должно соответствовать NONE из них как недопустимое число. –