номер телефона должен быть строкой или каким-то числовым типом, который имеет возможность сохранять номер телефона?

мы хотим сохранить 10-значный мобильный номер i.e.9999999999. Должен ли он быть числовым или строковым типом данных? Мы не хотим делать никаких вычислительных или манипуляционных операций на этом

Что является лучшей памятью и производительностью?

4 ответов


рекомендация E. 164 ITU-T говорит, что вам нужно 3 цифры для кода страны и до 15 цифр для номера каталога в рамках плана набора номера страны.

и многие люди добавляют некоторые знаки препинания. Например:

+ 1.212.555.1212-Североамериканский номер. Это также может быть оказано (212) 555-1212 в североамериканском Центральном приложении.

32 символа текста должны сделать трюк во всем мире.

Не используйте число, или вы будете сожалеть. Я был две вещи.

  • потерял какой-то европейский бизнес для компании, потому что мы предположили, что все телефонные номера были NANP-уступчивый десятизначных цифр.
  • экспорт электронных таблиц отображал числа в научной нотации 2.12555E+09 Это почти так же глупо, как Сири говорит мне вам звонят из двух bllion, сто двадцать пять миллионов....

телефоны каталог не числовых данных типы.


должно быть stringкак номер телефона будет превышать лимит int или даже long. Поэтому для обработки этих сценариев string всегда предпочитал.


пара вещей, которые хорошо иметь в виду:

В общем, число, которое вы не планируете делать вычисления, должно храниться как форма строки. Если вам нужно, чтобы номер мог начинаться с нуля (как вы это делаете, потому что некоторые номера телефонов), это важно.

Ergo, даже если (или когда) вы можете хранить номер телефона как огромное целое число (вы можете с 64-битными целыми числами), вы не должны. Вы потеряете данные, как только начнется число с нуля.

при хранении номера телефона помните, что код страны является особым типом информации. Вам лучше всего отделить это от остальной части номера, когда вы его храните. Таким образом, вы можете легко запросить номера телефонов по странам, и вам не придется иметь дело с разбором номера более одного раза (прежде чем хранить его, а не каждый раз, когда вы его получаете). Кроме того, если вы храните номер телефона вместе с кодом страны, вам необходимо проверить вещи убедитесь, что вы всегда храните код страны, потому что два номера из двух разных стран потенциально могут быть идентичными, если у одного есть код страны, а у другого нет.

также помните, что пунктуация-это способ изложения, и, следовательно, не имеет ничего общего с тем, как вы храните данные. Вы всегда можете представить данные так, как хотите, и то, как вы хотите, во всех случаях будет зависеть от ряда факторов. Например, какие данные вы представляя, кому Вы его представляете, а в некоторых случаях даже , когда вы представляете сведения. В случае телефонных номеров, вы должны сохранить номер в виде строки, без какой-либо пунктуации.

Я бы рекомендовал вам взглянуть на библиотеку Google для анализа, форматирования и проверки международных телефонных номеров (https://github.com/googlei18n/libphonenumber). Вы можете скормить этой библиотеке свой номер телефона и код страны, а также даст вам много полезной информации о нем, например, возможно ли и допустимо ли это число, к какому региону оно принадлежит, какой это номер и т. д.

Pro совет I: предоставьте пользователям возможность выбрать, к какой стране принадлежит номер, а не вводить код страны. Лучше для вас и лучше для пользователей.

Pro tip II: редко бывает такая вещь, как" Североамериканское центральное приложение " или " centric app", особенно если ваше приложение доступно в интернете. Это происходит, но это редко, поэтому вам было бы разумно подготовить свое приложение для мира, а не меньшую его часть.


вы можете использовать "ulong" для хранения длинных целочисленных значений. и чтобы прочитать конкретное значение или номер телефона, вы можете использовать "преобразование.ToUInt64(Консоли.ReadLine ());"