Trilhas
/
C#
C#
/
Exercícios
/
Análise de números de telefone
Análise de números de telefone

Análise de números de telefone

Exercício de aprendizagem

Introdução

Tuplas

Em C#, uma tupla é uma estrutura de dados que organiza dados, contendo dois ou mais campos de qualquer tipo.

Uma tupla normalmente é criada colocando 2 ou mais expressões separadas por vírgulas, dentro de um par de parênteses.

string boast = "All you need to know";
bool success = !string.IsNullOrWhiteSpace(boast);
(bool, int, string) triple = (success, 42, boast);

Uma tupla pode ser usada em operações de atribuição e inicialização, como valor de retorno ou argumento de método.

Os campos são extraídos usando a sintaxe de ponto. Por padrão, o primeiro campo é Item1, o segundo Item2, etc. Nomes diferentes do padrão são discutidos abaixo.

// initialization
(int, int, int) vertices = (90, 45, 45);

// assignment
vertices = (60, 60, 60);

//  return value
(bool, int) GetSameOrBigger(int num1, int num2)
{
    return (num1 == num2, num1 > num2 ? num1 : num2);
}

// method argument
int Add((int, int) operands)
{
    return operands.Item1 + operands.Item2;
}

Nomes de campos como Item1 etc. não deixam o código legível. O código abaixo mostra 2 maneiras de nomear os campos de tuplas. Observe também, no código abaixo, que var pode ser usado com tuplas e o tipo é inferido. Isso funciona igualmente bem para tuplas com campos nomeados e não nomeados.

// name items in declaration
(bool success, string message) results = (true, "well done!");
bool mySuccess = results.success;
string myMessage = results.message;

// name items in creating expression
var results2 = (success: true, message: "well done!");
bool mySuccess2 = results2.success;
string myMessage2 = results2.message;

Instruções

Neste exercício, você vai analisar números de telefone.

Você deve implementar 2 funcionalidades.

Os números de telefone passados para as rotinas têm a garantia de estar no formato NNN-NNN-NNNN, por exemplo 212-515-9876, e não são nulos.

1. Analise um número de telefone

Sua análise deve retornar 3 dados:

  1. Uma indicação de se o número tem um código de discagem de Nova York, ou seja, 212 como os 3 primeiros dígitos
  2. Uma indicação de se o número é falso, tendo 555 como código de prefixo nas posições 5 a 7 (contando a partir de 1)
  3. Os últimos 4 dígitos do número.

Implemente o método (estático) PhoneNumber.Analyze() para produzir as informações do número de telefone.

PhoneNumber.Analyze("631-555-1234");
// => (false, true, "1234")

2. Detecte se um número de telefone tem um código de prefixo falso (555)

Implemente o método (estático) PhoneNumber.IsFake() para detectar se o número de telefone é falso usando as informações do número de telefone produzidas na tarefa 1.

PhoneNumber.IsFake(PhoneNumbers.Analyze("631-555-1234"));
// => true
Editar via GitHub O link abre em uma nova janela ou aba
C# Exercism

Tudo pronto para começar Análise de números de telefone?

Crie sua conta no Exercism para aprender e dominar C# com 62 conceitos178 exercícios e mentoria humana de verdade, tudo de graça.