Kurzusok
/
Scala
Scala
/
Feladatok
/
Telefonszám
Telefonszám

Telefonszám

Könnyű

Bevezetés

Csatlakoztál a LinkLine-hoz, egy vezető kommunikációs vállalathoz, amely azon dolgozik, hogy mindenki számára megbízható kapcsolatot biztosítson. A csapat nagy kihívás előtt áll: a felhasználók mindenféle formátumban küldik be a telefonszámokat, kötőjelekkel, szóközökkel, pontokkal, zárójelekkel, sőt előtagokkal is. Egyes számok érvényesek, másokat viszont lehetetlen használni.

A küldetésed az, hogy rendet teremts ebben a káoszban. Megtisztítod az érvényes számokat, és úgy formázod őket, hogy használhatók legyenek a rendszerben. Ezzel egy időben felismered és kiszűröd az érvénytelen bejegyzéseket.

A LinkLine működésének sikere azon múlik, hogy képes vagy-e különválasztani a hasznosat a használhatatlantól. Készen állsz rá, hogy belevágj a kihívásba, és a kapcsolatok zökkenőmentesen működjenek?

Utasítások

Tisztítsd meg a felhasználók által megadott telefonszámokat, hogy SMS-üzeneteket lehessen rájuk küldeni.

A North American Numbering Plan (NANP) egy olyan telefonszámozási rendszer, amelyet Észak-Amerika számos országa használ, például az Egyesült Államok, Kanada vagy Bermuda. Minden NANP-ország ugyanazt a nemzetközi országkódot használja: 1.

A NANP-számok tízjegyű számok, amelyek egy háromjegyű területi kódból, közismert nevén körzetszámból, majd egy hétjegyű helyi számból állnak. A helyi szám első három jegye a központkód, ezt követi az egyedi négyjegyű előfizetői szám.

A formátumot általában így szokás leírni:

NXX NXX-XXXX

ahol N bármely 2 és 9 közötti számjegy, X pedig bármely 0 és 9 közötti számjegy.

Néha az országkód is az elejükön szerepel (1 vagy +1 formában).

A feladatod, hogy a különböző formátumú telefonszámokat megtisztítsd az írásjelektől és, ha szerepel, az országkódtól.

Például ezek a bemenetek

  • +1 (613)-995-0253
  • 613-995-0253
  • 1 613 995 0253
  • 613.995.0253

mindegyiküknek ezt a kimenetet kell eredményeznie:

6139950253

Megjegyzés: Mivel ez a feladat csak a NANP-országokban használt telefonszámokkal foglalkozik, csak az 1 számít érvényes országkódnak.

Kurzusspecifikus utasítások

Az egyszerűség és az olvashatóság kedvéért: érdemes a Scala gyűjteményfüggvényeit használni a Java String metódusai helyett. Ne feledd, hogy a Scalában a String implicit módon Seq[Char] is egyben, így ugyanolyan könnyen hívhatod őket, mint a String metódusait.

Néhány példa:

  • filter a replaceAll helyett
  • take, takeRight, drop, head, tail a substring helyett

Egy másik kipróbálásra érdemes ötlet lehet, hogy a String-ből List[Char]-et csinálj, majd a :: operátorral mintaillesztést használj.

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Scala Exercism

Készen állsz elkezdeni a(z) Telefonszám feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Scala nyelvet 95 feladat segítségével, valódi emberi mentorálással, mindez ingyen.