Почему такая реализация метода не подходит для решения? Сам перепроверял с данными из примеров - результат выходит правильный, но решение не засчитывалось пока не ввел вариант из ответа.
public String getPhoneNumber() {
StringBuilder phoneNumber = new StringBuilder(String.format("%1$010d", data.getPhoneNumber()));
phoneNumber.insert(8, '-');
phoneNumber.insert(6, '-');
phoneNumber.insert(3, ')');
phoneNumber.insert(0, '(');
phoneNumber.insert(0, data.getCountryCode());
phoneNumber.insert(0, '+');
return phoneNumber.toString();
}