Чего - то я путаться начал. Все условия выполняются же... Наверное
package com.javarush.task.task22.task2212;
/*
Проверка номера телефона
*/
public class Solution
{
public static boolean checkTelNumber(String telNumber)
{
// Пустая ли строка
int count = 0;
System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
System.out.println();
System.out.println(telNumber);
System.out.println("Номер содержит буквы: " + telNumber.matches("^[a-zA-Z]+$"));
if (telNumber.matches("^[a-zA-Z]+$"))
{
return false;
}
if (telNumber == null || telNumber.equals(""))
{
System.out.println("Нет телефона");
return false;
}
else
{
// Считаем количество чисел в строке
for (int i = 0; i < telNumber.length(); i ++)
{
if (String.valueOf(telNumber.charAt(i)).matches("^\\d$"))
{
count++;
}
}
System.out.println("Цифр = " + count);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (count == 10) // Если в номере 10 цифр
{
if (telNumber.matches("^\\(.+$") || telNumber.matches("^\\d.+$"))
{
System.out.println("Начинается со скобки: " + telNumber.matches("^\\(.+"));
System.out.println("Начинается с цифры: " + telNumber.matches("^\\d.+"));
if (telNumber.matches("^.+[^-]-[^-].+$") || telNumber.matches("^.[^-]+$") || telNumber.matches("^.+[^-]-[^-]+[^-]-[^-].+$"))
{
System.out.println("Любые символы, затем любой символ кроме тире, затем тире, затем любой символ кроме тире, затем любые символы: " + telNumber.matches("^.+[^-]-[^-].+$"));
System.out.println("В номере телефона совсем нет тире: " + telNumber.matches("^.[^-]+$"));
System.out.println("В номере телефона два тире которые идут не подряд: " + telNumber.matches("^.+[^-]-[^-]+[^-]-[^-].+$"));
if(telNumber.matches("^.+\\(\\d\\d\\d\\).[^-]+$") || telNumber.matches("^.+\\(\\d\\d\\d\\).[^-]+-.[^-]+$") || telNumber.matches("^.+\\(\\d\\d\\d\\)[^-]+-[^-]+-[^-]+$"))
{
System.out.println("В номере есть пара скобок и нет тире: " + telNumber.matches("^.+\\(\\d\\d\\d\\).[^-]+$"));
System.out.println("В номере есть пара скобок и одно тирэ: " + telNumber.matches("^.+\\(\\d\\d\\d\\).[^-]+-.[^-]+$"));
System.out.println("В номере есть пара скобок и два тирэ: " + telNumber.matches("^.+\\(\\d\\d\\d\\)[^-]+-[^-]+-[^-]+$"));
if (telNumber.matches("^.+\\d$"))
{
System.out.println("Номер заканчивается на цифру: " + telNumber.matches("^.+\\d$"));
return true;
}
}
}
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
else if (count == 12) // Если в номере 12 цифр
{
if (telNumber.matches("^\\+.+$"))
{
System.out.println("Номер начинается cо знака плюс: " + telNumber.matches("^\\+.+$"));
System.out.println("Начинается с цифры: " + telNumber.matches("^\\d.+"));
if (telNumber.matches("^.+[^-]-[^-].+$") || telNumber.matches("^.[^-]+$") || telNumber.matches("^.+[^-]-[^-]+[^-]-[^-].+$"))
{
System.out.println("Любые символы, затем любой символ кроме тире, затем тире, затем любой символ кроме тире, затем любые символы: " + telNumber.matches("^.+[^-]-[^-].+$"));
System.out.println("В номере телефона совсем нет тире: " + telNumber.matches("^.[^-]+$"));
System.out.println("В номере телефона два тире которые идут не подряд: " + telNumber.matches("^.+[^-]-[^-]+[^-]-[^-].+$"));
if(telNumber.matches("^.+\\(\\d\\d\\d\\).[^-]+$") || telNumber.matches("^.+\\(\\d\\d\\d\\).[^-]+-.[^-]+$") || telNumber.matches("^.+\\(\\d\\d\\d\\)[^-]+-[^-]+-[^-]+$"))
{
System.out.println("В номере есть пара скобок и нет тире: " + telNumber.matches("^.+\\(\\d\\d\\d\\).[^-]+$"));
System.out.println("В номере есть пара скобок и одно тирэ: " + telNumber.matches("^.+\\(\\d\\d\\d\\).[^-]+-.[^-]+$"));
System.out.println("В номере есть пара скобок и два тирэ: " + telNumber.matches("^.+\\(\\d\\d\\d\\)[^-]+-[^-]+-[^-]+$"));
if (telNumber.matches("^.+\\d$"))
{
System.out.println("Номер заканчивается на цифру: " + telNumber.matches("^.+\\d$"));
return true;
}
}
}
}
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
else
{
System.out.println("В номере много или мало цифр");
return false;
}
}
return false;
}
public static void main(String[] args)
{
System.out.println(checkTelNumber("+38050123-4-567"));
System.out.println(checkTelNumber("+38(0505)234567"));//здесь false т.к. в скобках больше 3 цифр
System.out.println(checkTelNumber("+38050123-45-67"));
System.out.println(checkTelNumber("0(501)234567"));
System.out.println(checkTelNumber("+38)050(1234567"));
System.out.println(checkTelNumber("+38(050)1-23-45-6-7"));
System.out.println(checkTelNumber("050ххх4567"));
System.out.println(checkTelNumber("05012+3456"));
System.out.println(checkTelNumber("(0)501234567"));
System.out.println(checkTelNumber(""));
}
}