extraire le code pays du numéro de téléphone mobile
J'ai une liste de numéros de téléphone mobile avec le code du pays comme "919638095998"le nombre. J'ai appelé le libphonenumber exemple google aussi mais dans le premier nous avons besoin de passer le pays code à 2 chiffres, je ne sais pas initialement. Alors, comment puis-je savoir que le nombre est de quel pays?
J'ai également obtenu une solution extraire manuellement le code un par un chiffre du numéro de téléphone mobile, puis de comparer avec le code du pays. Mais c'est un long travail et aussi qu'il va me donner de mauvaises performances. Quelqu'un peut-il proposer une solution adéquate?
pourquoi est-il une tâche de longue haleine? c'est très simple: prenez les 2 premiers chiffres de la chaîne (à l'aide de quelque chose comme une méthode subString ()), puis extraire le droit des pays à partir d'un service ou de votre propre pays, le code de la table db.
mais tous les pays n'ont pas de deux chiffres pour le code de pays.Certains pays a 1,2 ou 3 code de pays.
Il n'est pas simple car un code de pays n'est pas toujours 2 digets. NOUS, par exemple, a une longueur de 1 (1) alors que Madagascar a une durée de 3 (212)
mais tous les pays n'ont pas de deux chiffres pour le code de pays.Certains pays a 1,2 ou 3 code de pays.
Il n'est pas simple car un code de pays n'est pas toujours 2 digets. NOUS, par exemple, a une longueur de 1 (1) alors que Madagascar a une durée de 3 (212)
OriginalL'auteur Nency | 2012-09-04
Vous devez vous connecter pour publier un commentaire.
Il y a une liste de tous les numéros de téléphone disponibles pour les codes de pays sur Wikipédia. C'est ici
http://en.wikipedia.org/wiki/List_of_country_calling_codes
Je voudrais créer deux hashmaps. Avec tous les codes à quatre chiffres et d'un contenant à la fois les deux et à trois chiffres des codes.
En résumé. Si le premier chiffre est 7 russe.
Si elle est de 1 vérifiez dans la table de hachage de codes à quatre chiffres pour les quatre premiers numéros
si trouvé un code à quatre chiffres de retour au pays correspondant.si pas de réponse est les etats-unis
sinon vérifier deux premiers chiffres dans la table de hachage contenant les 2 ou 3 chiffres. Si trouvé deux, puis retourner la réponse d'autres c'est certainement un des trois chiffres du code et de retourner le pays correspondant de la table de hachage.
Il sera fastidieux de faire la table de hachage, mais je pense qu'une solution efficace.
Hmm je ne savais pas que ce coin de cas existé. Il semble qu'il y a deux 1 caractère numérique codes. De russie et les états-unis: 1 et 7 sont les codes ici. Si le premier chiffre d'un nombre est 7 vous avez la garantie que les pays de l'est de la Russie/Kazakhstan. Ils ont le même code de pays. Je voudrais vérifier ce dès le début et de ne pas s'embêter avec le reste de l'algorithme si c'est le cas. Je suis toujours thinknig sur le reste
Ok j'ai mis à jour le post pour répondre à 1 chiffre codes
le savez-vous?Nous numéro de téléphone mobile ont le code de la zone numéro de téléphone mobile ou tout simplement 10 chiffres +1?
Nous les numéros de téléphone mobile n'ont pas de zone de coda. Pas de numéro de téléphone AMÉRICAIN va commencer avec le code à quatre chiffres dans un autre pays. Il n'est pas possible. Si le premier chiffre est un ET les quatre premiers chiffres ne sont pas un autre code vous savez que vous parlez d'un AMÉRICAIN ou un numéro de téléphone canadien comme ils ont le même code.
OriginalL'auteur KennyBartMan
si ce n'est pas la fin de
Il suffit de regarder pour ce que j'ai trouvé un Java et Javascript bibliothèque tenue par Google 😉
Voir le repo:
https://github.com/googlei18n/libphonenumber
Il y a aussi une démo.
Bonne Chance!
OriginalL'auteur Willem
libphonenumber fait pour vous. Tout ce que vous avez à faire est d'ajouter le
+
signe avant votre numéro de téléphone et d'omettre le code de pays lors de l'analyse du numéro de téléphone.OriginalL'auteur João Neves
Lors de l'utilisation statique des structures de données peut être considéré comme une mauvaise pratique, les codes de pays ne changent pas beaucoup, donc je pense que la création d'une liste d'entre eux comme un arbre et de l'analyse du nombre avec cet arbre devrait être facile à mettre en œuvre la solution.
Vous pouvez également mettre la liste des codes pays dans un fichier externe de sorte qu'il peut facilement être mis à jour sans changer le code de l'application.
Wikipedia a la liste des codes de pays ici.
avez-vous le numéro de téléphone mobile? avant de l'analyser, de gauche à droite et essayez de faire correspondre avec les codes de pays, organisé comme un arbre comme la structure, comme celui montré dans le lien wikipédia.
est la zone de code inclus dans nous votre numéro de mobile?comme "+1 242 xxxxxxxxxx
Vous pouvez trouver la liste des codes ici: en.wikipedia.org/wiki/List_of_NANP_area_codes
je ne veux pas tout le code de zone, j'ai juste demandé qu'en nous le numéro de mobile le code de zone est également inclus ou simplement mobile, un numéro de 10 chiffres avec le code du pays +1?
OriginalL'auteur vainolo
Si le code de pays est à seulement 2 pas de chiffres. diviser le n ° de téléphone en 2 avec une première sous-chaîne à 2 chiffres et une seconde d'avoir le reste des 10 chiffres.
Ensuite, vérifiez le numéro de téléphone. avec la liste de codes à trouver si il n'y a aucune correspondance.Si non,supprimer la dernière non et répétez le vérifier.
OriginalL'auteur viks
Si vous jetez un oeil à votre propre lien, vous pouvez trouver le CountryCodeToRegionCodeMap classe. Il contient une liste de probablement tous les codes de pays. Vous pourriez l'utiliser pour créer votre propre code pour déterminer le code du pays a une longueur de 1, 2 ou 3. Je ne peux pas croire que c'est le seul endroit sur internet où une telle liste peut être trouvé.
est la zone de code inclus dans nous votre numéro de mobile?comme "+1 242 xxxxxxxxxx"
OriginalL'auteur Janoz
Juste faire une vérification rapide de wikipédia, j'ai pensé que vous avez besoin de faire un max de chaîne de recherche algo de l'avant. Sur un conflit qui ne semble pas venir, mais au cas où, vous pouvez vérifier le nombre de chiffres (NSN) pour trouver le code de pays
Façon optimisée serait de créer des seaux. Comme de liste de codes de pays. La longueur maximale de code de pays de l'est 4, (sauf si vous voulez aller dans la précision des provinces, auquel cas, il sera de 7, vérifiez la zone 6). et puis vérifier l'existence de 4, 3, 2, 1. Cela permettra de réduire considérablement votre algorithme de recherche de temps. Mais oui, la taille des données sera plus grand. Un cas classique de l'espace-temps compromis
OriginalL'auteur Nitin Chhajer
Code de pays dans le mobile un certain temps de commencer avec comme +(plus)44, 0044, 44 et comme l'a dit ci-dessus, certains pays peuvent avoir de code de longueur variable. Donc, la meilleure solution possible serait de commencer à partir de l'arrière, dès maintenant, nous savons que la longueur du numéro de téléphone mobile est de 10. une fois que vous prenez ces 10 chiffres, Alors vous pouvez analyser code de pays en conséquence.
Ensuite, nous devons stocker tous les codes de pays et de la longueur du numéro de téléphone mobile pour les pays, et le début de l'analyse nombre de démarrer avec max correspondance possible avec le code du pays de Cette façon, vous pouvez obtenir un code de pays. Pour vérifier vérifier la longueur du numéro de téléphone mobile(Sans le code du pays) est égale à la longueur correspondante du pays..
Qui pourrait ne pas être efficace
OriginalL'auteur twid
OriginalL'auteur swara