Доброго дня! не проходить останній пункт. беру приклади із завдання і виводить false. регулярки тестував на сайті https://www.debuggex.com/.Там все наглядно на прикладі схеми можна зрозуміти. Буду вдячний за підказку!
package com.javarush.task.task22.task2212;
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/*
Проверка номера телефона
*/
public class Solution {
public static boolean checkTelNumber(String telNumber)
{
boolean result = false;
if(telNumber == null || telNumber.toCharArray().length<10)
{
result = false;
}
else {Pattern pattern = Pattern.compile("\\d");
Matcher matcher = pattern.matcher(telNumber);
int count = 0;
while (matcher.find())
{
count++;
}
if(count == 12)
{
String regex = "^\\+\\d{2}(\\(\\d{3}\\)|\\d{3})\\d{3}\\-?\\d{2}\\-?\\d{2}$";
/*^\+\d{2}(\(\d{3}\)|\d{3})\d{3}\-?\d{2}\-?\d{2}$*/
Pattern pattern1 = Pattern.compile(regex);
Matcher matcher1 = pattern1.matcher(telNumber);
result = matcher.find();
}
else if (count == 10)
{
String regex = "^(\\(\\d{3}\\)|\\d{3})\\d{3}\\-?\\d{2}\\-?\\d{2}$";
Pattern pattern1 = Pattern.compile(regex);
Matcher matcher1 = pattern1.matcher(telNumber);
result = matcher.find();
}
}
return result;
}
public static void main(String[] args)
{
ArrayList<String> telNumbs = new ArrayList<>();
/* telNumbs.add("+380501234567");
telNumbs.add("+38(050)1234567");
telNumbs.add("+38050123-45-67");*/
telNumbs.add("050123-4567");
telNumbs.add("+38)050(1234567");
telNumbs.add("+38(050)1-23-45-6-7");
telNumbs.add("050xxx4567");
telNumbs.add("050123456");
telNumbs.add("+380501234567");
telNumbs.add("(0)501234567");
for (String s:telNumbs)
{
System.out.println(checkTelNumber(s));
}
}
}