Track
/
Scala
Scala
/
Esercizi
/
Numero di telefono
Numero di telefono

Numero di telefono

Facile

Introduzione

Sei entrato a far parte di LinkLine, un'azienda leader nel settore delle comunicazioni che lavora per garantire connessioni affidabili a tutti. Il team deve affrontare una grande sfida: gli utenti inviano numeri di telefono in ogni tipo di formato, con trattini, spazi, punti, parentesi e perfino prefissi. Alcuni numeri sono validi, mentre altri sono impossibili da usare.

La tua missione è trasformare questo caos in ordine. Pulirai i numeri validi, formattandoli in modo appropriato per l'uso nel sistema. Allo stesso tempo, individuerai e filtrerai le voci non valide.

Il successo delle attività di LinkLine dipende dalla tua capacità di separare ciò che è utile da ciò che non è utilizzabile. Sei pronto ad accettare la sfida e a far funzionare le connessioni senza intoppi?

Istruzioni

Ripulisci i numeri di telefono inseriti dagli utenti, in modo che si possano inviare loro messaggi SMS.

Il Piano di Numerazione Nordamericano (NANP) è un sistema di numerazione telefonica usato da molti paesi del Nord America, come Stati Uniti, Canada o Bermuda. Tutti i paesi NANP condividono lo stesso codice di chiamata internazionale: 1.

I numeri NANP sono numeri di dieci cifre composti da un codice di area di tre cifre, comunemente noto come prefisso, seguito da un numero locale di sette cifre. Le prime tre cifre del numero locale rappresentano il codice di centrale, seguite dal numero univoco di quattro cifre, ovvero il numero dell'abbonato.

Il formato è di solito rappresentato come

NXX NXX-XXXX

dove N è una cifra qualsiasi da 2 a 9 e X è una cifra qualsiasi da 0 a 9.

A volte hanno anche il codice di chiamata (rappresentato come 1 o +1) anteposto.

Il tuo compito è ripulire numeri di telefono formattati in modi diversi, rimuovendo la punteggiatura e il codice di chiamata, se presente.

Ad esempio, gli input

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

devono produrre tutti lo stesso output

6139950253

Nota: dato che questo esercizio tratta solo i numeri di telefono usati nei paesi NANP, solo 1 è considerato un codice di chiamata valido.

Istruzioni specifiche del track

Per semplicità e leggibilità: valuta di usare le funzioni sulle collezioni di Scala invece dei metodi di String di Java. Ricorda che in Scala una String è implicitamente anche una Seq[Char], quindi puoi chiamarle con la stessa facilità con cui chiami i metodi di String.

Alcuni esempi:

  • filter invece di replaceAll
  • take, takeRight, drop, head, tail invece di substring

Un'altra idea che vale la pena esplorare potrebbe essere trasformare la String in una List[Char] e poi usare il pattern matching con l'operatore ::.

Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
Scala Exercism

Vuoi iniziare Numero di telefono?

Iscriviti a Exercism per imparare e padroneggiare Scala con 95 esercizi e il mentoring di persone reali, tutto gratis.