Извлечь код страны из номера телефона [libphonenumber]
У меня есть строка, как это : +33123456789 (французский номер телефона). Я хочу извлечь код страны (+33), не зная страны. Например, он должен работать, если у меня есть другой телефон из другой страны. Я использую библиотеку googlehttps://code.google.com/p/libphonenumber/.
Если я знаю страну, это круто, я могу найти код страны :
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
int countryCode = phoneUtil.getCountryCodeForRegion(locale.getCountry());
но я не нахожу способ разобрать строку без знания страны.
4 ответа:
хорошо, поэтому я присоединился к группе Google libphonenumber ( https://groups.google.com/forum/?hl=en&fromgroups#! форум / libphonenumber-Обсудить) и я задал вопрос.
мне не нужно устанавливать страну в параметре, если мой номер телефона начинается с "+". Вот пример :
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance(); try { // phone must begin with '+' PhoneNumber numberProto = phoneUtil.parse(phone, ""); int countryCode = numberProto.getCountryCode(); } catch (NumberParseException e) { System.err.println("NumberParseException was thrown: " + e.toString()); }
здесь вы можете сохранить номер телефона как международный форматированный номер телефона
internationalFormatPhoneNumber = phoneUtil.format(givenPhoneNumber, PhoneNumberFormat.INTERNATIONAL);
он возвращает номер телефона как Международный формат +94 71 560 4888
Так что теперь у меня есть код страны, как это
String countryCode = internationalFormatPhoneNumber.substring(0,internationalFormatPhoneNumber.indexOf('')).replace('+', ' ').trim();
надеюсь, что это поможет вам
если строка, содержащая номер телефона, всегда будет начинаться таким образом (+33 или другой код страны), вы должны использовать регулярное выражение для анализа и получения кода страны, а затем использовать библиотеку для получения страны, связанной с номером.
вот ответ, как найти код вызова страны без использования сторонних библиотек (как это делает реальный разработчик):
получите список всех существующих кодов стран Википедия может помочь здесь: https://en.wikipedia.org/wiki/List_of_country_calling_codes
анализ данных в древовидной структуре, где каждая цифра является ветвью.
пересечь дерево цифра за цифрой, пока вы не окажетесь на последней ветке - это ваш код страны.