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

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

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

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

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

Ситуация

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

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

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

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

replace - пользоваться умею , но что на что менять?????????? Или как иначе сделать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.10.2016, 23:07     Привести телефонный номер к общему виду
Посмотрите здесь:
Телефонный справочник Android
Android Константы из strings.xml привести к String
Приложение падает когда шапка Navigation Drawer Activity пропадает из виду Android
Активности. Работа в Eclipce. Ошибки или привести код в порядок Android
Привести нормальное уравнение прямой к общему виду
С виду простое однородное уравнение. Нужно привести к виду F(x,y)=C
Привести дроби к общему знаменателю Turbo Pascal
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
korshun84
21 / 76 / 17
Регистрация: 08.07.2014
Сообщений: 403
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,727
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
21 / 76 / 17
Регистрация: 08.07.2014
Сообщений: 403
14.10.2016, 18:36     Привести телефонный номер к общему виду #6
Цитата Сообщение от Star2016 Посмотреть сообщение
уверенности что сможет определить все номера нет
Если "работать" только с российскими номерами, хоть с сотовыми, хоть с городскими - проблем не будет с таким подходом.
Pablito
2458 / 1903 / 591
Регистрация: 12.05.2014
Сообщений: 6,711
Завершенные тесты: 1
14.10.2016, 18:46     Привести телефонный номер к общему виду #7
количество символов в номере телефона одинаковое?
если не считать плюс и коды оператора и страны

по идее там длина номера фиксированная...если так, то проще всего сравнивать с конца строки - берем от конца сколько надо символов и сравниваем
korshun84
21 / 76 / 17
Регистрация: 08.07.2014
Сообщений: 403
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,727
16.10.2016, 12:59     Привести телефонный номер к общему виду #12
Цитата Сообщение от Bend3r Посмотреть сообщение
Проверяйте номер на длину, а далее берите последние 7 цифр (с конца). Это и будет номер и не важно что юзер дописал с самого начала.
Вредный совет. А если юзер дописал одну или много цифр в конец, которые при наборе не имеют значение?
vxg
Модератор
3145 / 1947 / 214
Регистрация: 13.01.2012
Сообщений: 7,438
17.10.2016, 10:52     Привести телефонный номер к общему виду #13
Цитата Сообщение от CoolMind Посмотреть сообщение
А если юзер дописал одну или много цифр в конец
зачем он это сделал и как он будет пользоваться этим номером?
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
17.10.2016, 12:18     Привести телефонный номер к общему виду #14
Цитата Сообщение от vxg Посмотреть сообщение
зачем он это сделал и как он будет пользоваться этим номером?
Такое может быть, например, если он вручную записывал номер. При этом телефон всё равно дозвонится до адресата.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.10.2016, 12:35     Привести телефонный номер к общему виду
Еще ссылки по теме:
Turbo Pascal Привести дроби к общему знаменателю
Pascal привести дроби к общему знаменателю
Turbo Pascal Привести дроби к общему знаменателю
Обход графа по общему виду муравьиного алгоритма C#

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

Или воспользуйтесь поиском по форуму:
vxg
Модератор
3145 / 1947 / 214
Регистрация: 13.01.2012
Сообщений: 7,438
17.10.2016, 12:35     Привести телефонный номер к общему виду #15
Цитата Сообщение от CoolMind Посмотреть сообщение
При этом телефон всё равно дозвонится до адресата.
???
Yandex
Объявления
17.10.2016, 12:35     Привести телефонный номер к общему виду
Ответ Создать тему
Опции темы

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