На примерах из условия отрабатывает корректно, проверка на null и пустую строку есть.
package com.javarush.task.task22.task2212;
/*
Проверка номера телефона
*/
public class Solution {
public static boolean checkTelNumber(String telNumber) {
if (telNumber.isEmpty()||telNumber.contains("[a-zA-Z]")) return false;
if (telNumber.equals(null)) return false;
int length = telNumber.replaceAll("\\D","").length();
if(length==12){
return telNumber.matches("(^\\+\\d*[-]\\d*[-]\\d*)|(\\+\\d{12})|(\\+\\d{1,2}\\(\\d{3}\\)\\d+)");
}
if (length==10){
return telNumber.matches("(^\\(\\d{3}\\)(\\d+|-\\d+-\\d+)|-\\d+-\\d+|\\d+-\\d+|-\\d{7})|(\\d{10})");
}
return false;
}
public static void main(String[] args) {
}
}