Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Star2016
5 / 5 / 0
Регистрация: 26.07.2016
Сообщений: 233
#1

Привести телефонный номер к общему виду - Android

13.10.2016, 23:07. Просмотров 361. Ответов 17
Метки нет (Все метки)

Ситуация

Пришло смс в нем номер отправителя и этот номер нужно как то приравнять к номеру в телефонной книге

Получить список номеров всей т.книги не проблема, НО все пишут номера по разному кто то пишет +7 , кто то 8 а еще много разных вариантов.

Как привести номера телефонов в книге к такому же виду что и номер приходящего смс ?

чтобы сравнить номера и получить equal true.

replace - пользоваться умею , но что на что менять?????????? Или как иначе сделать?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
korshun84
13 / 68 / 14
Регистрация: 08.07.2014
Сообщений: 370
14.10.2016, 07:16     Привести телефонный номер к общему виду #2
Цитата Сообщение от Star2016 Посмотреть сообщение
replace - пользоваться умею , но что на что менять
Убирать +7 или 8 вначале и "-" в оставшейся части номера, если они есть, то-есть приводить к виду 9521234567
Star2016
5 / 5 / 0
Регистрация: 26.07.2016
Сообщений: 233
14.10.2016, 09:56  [ТС]     Привести телефонный номер к общему виду #3
Этого достаточно? Или могут быть какие то еще варианты?
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
14.10.2016, 11:47     Привести телефонный номер к общему виду #4
Цитата Сообщение от Star2016 Посмотреть сообщение
этот номер нужно как то приравнять к номеру в телефонной книге
Учитесь задавать вопросы.
Цитата Сообщение от Star2016 Посмотреть сообщение
кто то пишет +7 , кто то 8 а еще много разных вариантов.
И это вы только Россию взяли, а есть ещё куча республик и других государств.
Цитата Сообщение от Star2016 Посмотреть сообщение
Как привести номера телефонов в книге к такому же виду что и номер приходящего смс ?
Не надо этого делать, оставьте книгу в покое.
Цитата Сообщение от Star2016 Посмотреть сообщение
чтобы сравнить номера и получить equal true.
Используйте регулярные выражения. Там и вариантов-то - кот наплакал.
Или сначала взяли номер из книги, удалили пробелы, минусы, скобки, плюсы, короче, оставили одни цифры, так даже лучше. Взяли номер из SMS, проделали ту же операцию. Сравнили. Если не равен, попробуйте заменить первую семёрку на восьмёрку и снова проверить.

Добавлено через 1 минуту
Способ с удалением первой цифры - ошибка, поскольку существуют номера, начинающиеся с девятки. Или второй цифры - девятки.
Star2016
5 / 5 / 0
Регистрация: 26.07.2016
Сообщений: 233
14.10.2016, 18:00  [ТС]     Привести телефонный номер к общему виду #5
Регилярки я использовать не стал. Удалил из всех номеров в массиве и номере для сравнения все скобки, пробелы, минусы +7 и 8 если они в самом начале номера. Сравнение работает. Но уверенности что сможет определить все номера нет.
korshun84
13 / 68 / 14
Регистрация: 08.07.2014
Сообщений: 370
14.10.2016, 18:36     Привести телефонный номер к общему виду #6
Цитата Сообщение от Star2016 Посмотреть сообщение
уверенности что сможет определить все номера нет
Если "работать" только с российскими номерами, хоть с сотовыми, хоть с городскими - проблем не будет с таким подходом.
Паблито
2240 / 1813 / 564
Регистрация: 12.05.2014
Сообщений: 6,456
Завершенные тесты: 1
14.10.2016, 18:46     Привести телефонный номер к общему виду #7
количество символов в номере телефона одинаковое?
если не считать плюс и коды оператора и страны

по идее там длина номера фиксированная...если так, то проще всего сравнивать с конца строки - берем от конца сколько надо символов и сравниваем
korshun84
13 / 68 / 14
Регистрация: 08.07.2014
Сообщений: 370
14.10.2016, 19:24     Привести телефонный номер к общему виду #8
Цитата Сообщение от Паблито Посмотреть сообщение
количество символов в номере телефона одинаковое?
Да, если не ошибаюсь.
С номерами мобильных операторов думаю итак понятно: код+номер = 10 символов.
С городскими как: 7 <код города> <номер>. Код города 3\4\5 символов, номер 7\6\5 символов соответственно. В итоге, если отбросить +7 или 8 вначале, то всего получается 10 символов в любом случае.
Поэтому все должно быть ок.
Alexvp
107 / 71 / 8
Регистрация: 03.08.2014
Сообщений: 344
15.10.2016, 14:21     Привести телефонный номер к общему виду #9
Рекомендую почитать про стандарт телефонной нумерации Е.164
Bend3r
149 / 136 / 18
Регистрация: 29.07.2012
Сообщений: 709
16.10.2016, 02:46     Привести телефонный номер к общему виду #10
Проверяйте номер на длину, а далее берите последние 7 цифр (с конца). Это и будет номер и не важно что юзер дописал с самого начала.
Alexvp
107 / 71 / 8
Регистрация: 03.08.2014
Сообщений: 344
16.10.2016, 08:28     Привести телефонный номер к общему виду #11
Цитата Сообщение от Bend3r Посмотреть сообщение
берите последние 7 цифр (с конца).
А трехзначный код города/оператора это не номер?
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
16.10.2016, 12:59     Привести телефонный номер к общему виду #12
Цитата Сообщение от Bend3r Посмотреть сообщение
Проверяйте номер на длину, а далее берите последние 7 цифр (с конца). Это и будет номер и не важно что юзер дописал с самого начала.
Вредный совет. А если юзер дописал одну или много цифр в конец, которые при наборе не имеют значение?
vxg
Модератор
3068 / 1870 / 196
Регистрация: 13.01.2012
Сообщений: 7,123
17.10.2016, 10:52     Привести телефонный номер к общему виду #13
Цитата Сообщение от CoolMind Посмотреть сообщение
А если юзер дописал одну или много цифр в конец
зачем он это сделал и как он будет пользоваться этим номером?
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
17.10.2016, 12:18     Привести телефонный номер к общему виду #14
Цитата Сообщение от vxg Посмотреть сообщение
зачем он это сделал и как он будет пользоваться этим номером?
Такое может быть, например, если он вручную записывал номер. При этом телефон всё равно дозвонится до адресата.
vxg
Модератор
3068 / 1870 / 196
Регистрация: 13.01.2012
Сообщений: 7,123
17.10.2016, 12:35     Привести телефонный номер к общему виду #15
Цитата Сообщение от CoolMind Посмотреть сообщение
При этом телефон всё равно дозвонится до адресата.
???
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
18.10.2016, 09:14     Привести телефонный номер к общему виду #16
vxg, разве нет? Начиная с 12 цифры просто проигнорируются.
vxg
Модератор
3068 / 1870 / 196
Регистрация: 13.01.2012
Сообщений: 7,123
18.10.2016, 12:12     Привести телефонный номер к общему виду #17
Цитата Сообщение от CoolMind Посмотреть сообщение
Начиная с 12 цифры просто проигнорируются
не знал, не пробовал
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.10.2016, 21:22     Привести телефонный номер к общему виду
Еще ссылки по теме:

Телефонный справочник Android
Android Узнать программно номер телефона
Активности. Работа в Eclipce. Ошибки или привести код в порядок Android
Android Серийный номер экземпляра приложения
Приложение падает когда шапка Navigation Drawer Activity пропадает из виду Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Bend3r
149 / 136 / 18
Регистрация: 29.07.2012
Сообщений: 709
19.10.2016, 21:22     Привести телефонный номер к общему виду #18
Не проще организовать маску ввода?
Yandex
Объявления
19.10.2016, 21:22     Привести телефонный номер к общему виду
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru