Валидатор выдаёт ошибку: "Убедись, что ты учел все критерии валидности.". Никак не могу понять, что я упустил.
package com.javarush.task.task22.task2212;
/*
Проверка номера телефона
*/
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Solution {
public static boolean checkTelNumber(String telNumber) {
if(telNumber == null)
return false;
if(telNumber.charAt(0) == '+' && telNumber.length() != 13 && telNumber.length() != 15)
return false;
if(telNumber.charAt(0) != '+' && telNumber.length() != 10 && telNumber.length() != 12)
return false;
int left_skobka = telNumber.indexOf('(');
int right_skobka = telNumber.indexOf(')');
if(left_skobka > right_skobka)
return false;
if(left_skobka != -1 && right_skobka != -1) {
String text = telNumber.substring(left_skobka + 1, right_skobka);
Pattern pattern = Pattern.compile("[0-9]{3}");
Matcher matcher = pattern.matcher(text);
if(!matcher.find()) {
return false;
}
}
if(right_skobka != -1 && left_skobka == -1)
return false;
if(telNumber.charAt(0) == '+') {
String text = telNumber.replaceAll("[+()]", "");
Pattern pattern = Pattern.compile("[0-9]{12}");
Matcher matcher = pattern.matcher(text);
if(!matcher.find()) {
return false;
}
} else {
String text = telNumber.replaceAll("[()]", "");
Pattern pattern = Pattern.compile("[0-9]{10}");
Matcher matcher = pattern.matcher(text);
if(!matcher.find()) {
return false;
}
}
return true;
}
/*
public static boolean checkTelNumber(String telNumber) {
return false;
}
*/
public static void main(String[] args) {
String telNumber1 = "+380501234567";
String telNumber2 = "+38(050)1234567";
String telNumber3 = "(050)1234567";
String telNumber4 = "0(501)234567";
String telNumber5 = "+38)050(1234567";
String telNumber6 = "+38(050)123-45-67";
String telNumber7 = "050ххх4567";
String telNumber8 = "050123456";
String telNumber9 = "(0)501234567";
System.out.println(telNumber1 + " - " + checkTelNumber(telNumber1));
System.out.println(telNumber2 + " - " + checkTelNumber(telNumber2));
System.out.println(telNumber3 + " - " + checkTelNumber(telNumber3));
System.out.println(telNumber4 + " - " + checkTelNumber(telNumber4));
System.out.println(telNumber5 + " - " + checkTelNumber(telNumber5));
System.out.println(telNumber6 + " - " + checkTelNumber(telNumber6));
System.out.println(telNumber7 + " - " + checkTelNumber(telNumber7));
System.out.println(telNumber8 + " - " + checkTelNumber(telNumber8));
System.out.println(telNumber9 + " - " + checkTelNumber(telNumber9));
}
}