Extrakt der Land-code von Handy-Nummer
Habe ich eine Liste von Handy-Nummern mit Ländervorwahl wie "919638095998" - Nummer. Ich habe gemäß der libphonenumber google Beispiel auch aber zuerst müssen wir übergeben das Land 2-stellige code, den ich nicht kenne zunächst. Also, wie kann ich wissen, dass dem so ist, aus welchem Land?
Habe ich auch eine Lösung als manuell extrahieren Sie den code, indem Sie eine Ziffer von Handy-Nummer und dann vergleichen mit dem Land code. Aber es ist eine lange Aufgabe und es wird auch geben Sie mir schlechte performance. Kann jemand empfehlen, eine richtige Lösung?
warum ist es eine lange Aufgabe? es ist sehr einfach: nehmen Sie die ersten 2 Ziffern aus der Zeichenfolge (mit so etwas wie einem subString () - Methode) und dann rufen Sie das richtige Land aus einem Dienst oder Ihrem eigenen Land code db-Tabelle.
aber jedes Land, nicht zwei Ziffern für den Ländercode.Einige Land hat 1,2 oder 3 Land-code.
Es ist nicht so einfach, da ein Ländercode ist nicht immer 2 digets. UNS hat zum Beispiel eine Länge von 1 (1) während Madagaskar hat eine Länge von 3 (212)
aber jedes Land, nicht zwei Ziffern für den Ländercode.Einige Land hat 1,2 oder 3 Land-code.
Es ist nicht so einfach, da ein Ländercode ist nicht immer 2 digets. UNS hat zum Beispiel eine Länge von 1 (1) während Madagaskar hat eine Länge von 3 (212)
InformationsquelleAutor Nency | 2012-09-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es eine Liste aller Telefonnummern für Länder-codes auf Wikipedia. Es ist hier
http://en.wikipedia.org/wiki/List_of_country_calling_codes
Ich würde zwei hashmaps. Mit allen vier stelligen codes und eines mit sowohl die zwei-und dreistelligen codes.
In der Zusammenfassung. Wenn die erste Ziffer 7 ist Russisch.
Wenn es 1 check-in die hashmap des vierstelligen codes für die ersten vier zahlen
wenn gefunden, einen vierstelligen code zurück das entsprechende Land.wenn keine Antwort ist USA
andernfalls überprüfen Sie die ersten zwei Ziffern in der hashmap mit den 2-oder 3-stellig. Wenn zwei dann wieder die Antwort anderen ist es sicherlich ein dreistelliger code und Rückgabe das entsprechende Land aus dem hash.
Wird es mühsam sein, um die hashmap aber ich denke, dass eine effiziente Lösung.
Hmm ich wusste gar nicht, dass diese Ecke Fall bestanden. Es scheint, es gibt zwei 1-stellige codes. Russische und die USA: So 1 und 7 sind die codes hier. Wenn die erste Ziffer einer Zahl die 7, Sie garantiert, dass das Land Russland/Kasachstan. Sie haben den gleichen Ländercode. Ich würde prüfen, ob diese an den Anfang und nicht die Mühe mit dem rest des Algorithmus ist dies der Fall. Ich bin immer noch thinknig über den rest
Ok, ich habe den Beitrag aktualisieren, Speisen für 1-stellige codes
weißt du das?Us-Handy-Nummer die Vorwahl im Handy-Nummer oder genau 10-stellig mit +1?
Us-Mobilfunk-Nummern nicht ein Bereich, coda. Keine US-Telefonnummer beginnt mit dem vier stelligen code, der von einem anderen Land. Es ist nicht möglich. Wenn die erste Ziffer ein UND die ersten vier Ziffern sind nicht von einem anderen code, den Sie wissen, Sie sprechen von einer US-oder kanadischen Zahl, wie Sie den gleichen code besitzen.
InformationsquelleAutor KennyBartMan
wenn es nicht zu spät
Gerade auf der Suche nach diesem fand ich einen Java-und Javascript-Bibliothek von Google gepflegten 😉
Finden Sie unter der repo:
https://github.com/googlei18n/libphonenumber
Gibt es auch ein demo.
Glück!
InformationsquelleAutor Willem
libphonenumber übernimmt das für Sie. Alles, was Sie tun müssen ist, fügen Sie die
+
melden Sie sich vor Ihrer Telefonnummer, ohne die Landesvorwahl beim Parsen der Telefonnummer.InformationsquelleAutor João Neves
Während der Verwendung von statischen Daten-Strukturen kann als eine schlechte Praxis, Ländercodes ändern sich nicht viel, also ich denke so eine Liste erstellen die von Ihnen als Baum und analysieren Sie die Anzahl mit diesem Baum sollte eine einfach zu implementierende Lösung.
Könnte man auch die Liste von Länder-codes in eine externe Datei, so dass es problemlos aktualisiert werden kann, ohne den Anwendungscode zu ändern.
Wikipedia hat die Liste von Länder-codes hier.
haben Sie die Handy-Nummer? dann analysieren Sie diese von Links nach rechts und versuchen, eine übereinstimmung mit der Land-codes, organisiert in einem Baum wie Struktur, wie der in dem link zu wikipedia.
area code im us-Handy-Nummer?wie "+1 242 xxxxxxxxxx
Sie finden die Liste der US area codes hier: en.wikipedia.org/wiki/List_of_NANP_area_codes
ich will nicht alle Vorwahl, ich habe nur darum gebeten, dass in us-Handy-Nummer, die Vorwahl ist auch enthalten oder nur Handy-Nummer mit 10 Ziffern Ländercode +1?
InformationsquelleAutor vainolo
Wenn der Ländercode ist nur die 2-stellige Nr. split das Telefon nicht in 2 mit dem ersten Teilstring mit 2 Ziffern und das zweite mit den restlichen 10 stellige.
Dann überprüfen Sie die Tel. - Nr. mit der code-Liste zu finden, wenn es keine passenden lieben.Wenn Nein,entfernen Sie die Letzte nicht, und wiederholen Sie die Prüfung.
InformationsquelleAutor viks
Wenn du einen Blick auf deinen eigenen link findet Ihr die CountryCodeToRegionCodeMap Klasse. Es enthält eine Liste der wahrscheinlich alle Land-codes. Könnten Sie verwenden, um erstellen Ihrer eigenen code, um zu bestimmen, von der Land-code hat eine Länge von 1, 2 oder 3. Ich kann nicht glauben, dass dies der einzige Ort im internet wo sich eine solche Liste gefunden werden kann.
area code im us-Handy-Nummer?wie "+1 242 xxxxxxxxxx"
InformationsquelleAutor Janoz
Nur tun, eine schnelle überprüfung von wikipedia, dachte ich, dass Sie tun müssen, um eine max string-such-algo von vorne. Über einen Konflikt, der nicht zu kommen scheint, aber incase, können Sie die Anzahl der Ziffern (NSN) zu finden, das Land code
Optimal wäre buckets zu erstellen. Wie aus Landes-code-Liste. Die maximale Länge des Ländercode 4 ist, (es sei denn, Sie wollen gehen in die Präzision der Provinzen, in welchem Fall es werden 7, check-zone 6). und dann überprüfen Sie für die Existenz von 4, 3, 2, 1. Dies wird erheblich reduzieren Sie Ihre such-Algorithmus Zeit. Aber ja die Größe der Daten größer sein wird. Ein klassischer Fall von time-space-tradeoff
InformationsquelleAutor Nitin Chhajer
Land code im mobile einige Zeit Anfang wie +(plus)44, 0044, 44 und wie oben schon gesagt, einige Länder haben möglicherweise variable length code. Also beste Lösung wäre, starten Sie von der Rückseite ab jetzt wissen wir die Länge der Handy-Nummer ist 10. wenn Sie diese 10 Ziffern sind, Dann können Sie analysieren, country code entsprechend.
Dann müssen wir speichern alle Ländercodes und die Länge der Handy-Nummer für die Länder, und starten parsing Anzahl von start mit max mögliche übereinstimmung mit dem Land-code, so können Sie rechts Land-code. Um cross-check prüfen Sie die Länge der Handy-Nummer(Ohne Vorwahl) ist gleich der Länge für das entsprechende Land..
Das mag nicht effizient sein
InformationsquelleAutor twid
InformationsquelleAutor swara