Sorry the code is a bit messy; not sure why it isn't working
package com.codegym.task.task22.task2212;
/*
Phone number verification
*/
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Solution {
public static boolean checkPhoneNumber(String phoneNumber) {
String[] digits = phoneNumber.split("");
int numbers = 0;
boolean startsPlus = false;
int dashes = 0;
int brackets = 0;
for (int i = 0; i < digits.length; i++){
if (i == 0)
if (digits[i].equals("+")){
startsPlus = true;
continue;
}
if (isNumeric(digits[i])) numbers++;
else if (digits[i].equals("-")){
if (i == digits.length-1 || digits[i+1].equals("-")) return false;
dashes++;
} else if (digits[i].equals("(")){
if (dashes>0 || i > digits.length-5 || !digits[i+3].equals(")")) return false;
brackets++;
} else if (digits[i].equals(")"))
if (dashes>0 && brackets!=1) return false;
else return false;
}
if (startsPlus)
if (numbers != 12) return false;
else
if (numbers != 10) return false;
return dashes <= 2 && brackets <= 1;
}
public static boolean isNumeric(String str) {
try {
Double.parseDouble(str);
return true;
} catch(NumberFormatException e){
return false;
}
}
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
String s = bufferedReader.readLine();
boolean phoneNumber = checkPhoneNumber(s);
System.out.println(phoneNumber);
}
}