Почему такая реализация метода не подходит для решения? Сам перепроверял с данными из примеров - результат выходит правильный, но решение не засчитывалось пока не ввел вариант из ответа.
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();
}