Trilhas
/
Scala
Scala
/
Exercícios
/
Número de Telefone
Número de Telefone

Número de Telefone

Fácil

Introdução

Você entrou na LinkLine, uma empresa de comunicações líder de mercado que trabalha para garantir conexões confiáveis para todo mundo. A equipe enfrenta um grande desafio: os usuários enviam números de telefone nos mais diversos formatos, como traços, espaços, pontos, parênteses e até prefixos. Alguns números são válidos, enquanto outros são impossíveis de usar.

Sua missão é transformar esse caos em ordem. Você vai limpar os números válidos, formatando-os adequadamente para uso no sistema. Ao mesmo tempo, você vai identificar e filtrar as entradas inválidas.

O sucesso das operações da LinkLine depende da sua capacidade de separar o útil do inútil. Você topa encarar o desafio e manter as conexões funcionando sem problemas?

Instruções

Limpe números de telefone digitados pelos usuários para que possam receber mensagens SMS.

O Plano de Numeração Norte-Americano (NANP) é um sistema de numeração telefônica usado por muitos países da América do Norte, como Estados Unidos, Canadá ou Bermudas. Todos os países do NANP compartilham o mesmo código de país internacional: 1.

Os números do NANP são números de dez dígitos, formados por um código de área de três dígitos, conhecido como código de área, seguido de um número local de sete dígitos. Os três primeiros dígitos do número local representam o código de central, seguidos dos quatro dígitos únicos que formam o número do assinante.

O formato costuma ser representado como

NXX NXX-XXXX

em que N é qualquer dígito de 2 a 9 e X é qualquer dígito de 0 a 9.

Às vezes, eles também vêm com o código de país (representado como 1 ou +1) no início.

Sua tarefa é limpar números de telefone com formatações diferentes, removendo a pontuação e o código do país, se estiver presente.

Por exemplo, as entradas

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

devem todas produzir a saída

6139950253

Nota: Como este exercício trata apenas de números de telefone usados em países do NANP, somente 1 é considerado um código de país válido.

Instruções específicas da trilha

Para simplificar e manter a legibilidade: considere usar as funções de coleção do Scala em vez dos métodos de String do Java. Lembre-se de que, em Scala, uma String também é implicitamente uma Seq[Char], então você pode chamá-las com a mesma facilidade que os métodos de String.

Alguns exemplos:

  • filter em vez de replaceAll
  • take, takeRight, drop, head, tail em vez de substring

Outra ideia que vale a pena explorar é transformar a String em uma List[Char] e depois usar pattern matching com o operador ::.

Editar via GitHub O link abre em uma nova janela ou aba
Scala Exercism

Tudo pronto para começar Número de Telefone?

Crie sua conta no Exercism para aprender e dominar Scala com 95 exercícios e mentoria humana de verdade, tudo de graça.