Du bist jetzt bei LinkLine, einem führenden Kommunikationsunternehmen, das zuverlässige Verbindungen für alle gewährleisten will. Das Team steht vor einer großen Herausforderung: Nutzer reichen Telefonnummern in allen möglichen Formaten ein, mit Bindestrichen, Leerzeichen, Punkten, Klammern und sogar Präfixen. Manche Nummern sind gültig, andere lassen sich unmöglich verwenden.
Deine Aufgabe ist es, dieses Chaos in Ordnung zu bringen. Du bereinigst gültige Nummern und formatierst sie passend für die Verwendung im System. Gleichzeitig erkennst du ungültige Einträge und filterst sie heraus.
Der Erfolg von LinkLine hängt davon ab, dass du Brauchbares von Unbrauchbarem trennen kannst. Bist du bereit, die Herausforderung anzunehmen und dafür zu sorgen, dass die Verbindungen reibungslos laufen?
Bereinige Telefonnummern, damit man ihnen SMS-Nachrichten senden kann.
Der North American Numbering Plan (NANP) ist ein Telefonnummernsystem, das in vielen Ländern Nordamerikas wie den Vereinigten Staaten, Kanada oder Bermuda verwendet wird.
Alle NANP-Länder teilen sich dieselbe internationale Ländervorwahl: 1.
NANP-Nummern sind zehnstellige Nummern, die aus einer dreistelligen Numbering Plan Area-Nummer, allgemein bekannt als area code, bestehen, gefolgt von einer siebenstelligen lokalen Nummer. Die ersten drei Ziffern der lokalen Nummer bilden den exchange code, gefolgt von der eindeutigen vierstelligen Nummer, der subscriber number.
Das Format wird üblicherweise so dargestellt
NXX NXX-XXXX
wobei N eine beliebige Ziffer von 2 bis 9 und X eine beliebige Ziffer von 0 bis 9 ist.
Manchmal steht ihnen auch die Ländervorwahl (dargestellt als 1 oder +1) voran.
Deine Aufgabe ist es, unterschiedlich formatierte Telefonnummern zu bereinigen, indem du Satzzeichen und, falls vorhanden, die Ländervorwahl entfernst.
Zum Beispiel sollten die Eingabewerte
+1 (613)-995-0253613-995-02531 613 995 0253613.995.0253alle dieselbe Ausgabe erzeugen:
6139950253
Hinweis: Da sich diese Übung nur mit Telefonnummern befasst, die in NANP-Ländern verwendet werden, gilt nur 1 als gültige Ländervorwahl.
Neben der Funktion numbers, die Telefonnummern bereinigt, musst du im Emacs-Lisp-Track noch zwei weitere Funktionen schreiben: area-code und pprint.
Jede der zusätzlichen Funktionen nimmt die Telefonnummer als einzigen Parameter.
Die erste Funktion area-code extrahiert die Vorwahl aus der Eingabe, während die zweite Funktion pprint die Eingabe in einen String im folgenden Format umwandelt:
(NXX) NXX-XXXX
wobei N und X wie oben beschrieben sind.
Melde dich bei Exercism an, um Emacs Lisp mit 96 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.