Tracks
/
C#
C#
/
Ejercicios
/
Análisis de números de teléfono
Análisis de números de teléfono

Análisis de números de teléfono

Ejercicio de aprendizaje

Introducción

Tuplas

En C#, una tupla es una estructura de datos que organiza información y que contiene dos o más campos de cualquier tipo.

Una tupla se suele crear colocando 2 o más expresiones separadas por comas, dentro de un par de paréntesis.

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

Una tupla se puede usar en operaciones de asignación e inicialización, como valor de retorno o como argumento de un método.

Los campos se extraen con la sintaxis de punto. De forma predeterminada, el primer campo es Item1, el segundo Item2, etc. Los nombres que no son los predeterminados se explican más abajo.

// 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;
}

Los nombres de campo Item1, etc. no hacen que el código sea legible. El código de abajo muestra 2 maneras de nombrar los campos de las tuplas. Fíjate también, en el código de abajo, que var se puede usar con tuplas y que el tipo se infiere. Esto funciona igual de bien para tuplas con campos con nombre y sin nombre.

// 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;

Instrucciones

En este ejercicio vas a analizar números de teléfono.

Debes implementar 2 funcionalidades.

Se garantiza que los números de teléfono que se pasan a las rutinas tienen el formato NNN-NNN-NNNN, por ejemplo 212-515-9876, y que no son nulos.

1. Analiza un número de teléfono

Tu análisis debe devolver 3 datos:

  1. Una indicación de si el número tiene un código de marcado de Nueva York, es decir, 212 como los primeros 3 dígitos
  2. Una indicación de si el número es falso por tener 555 como código de prefijo en las posiciones 5 a 7 (contando desde 1)
  3. Los últimos 4 dígitos del número.

Implementa el método (estático) PhoneNumber.Analyze() para producir la información del número de teléfono.

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

2. Detecta si un número de teléfono tiene un código de prefijo falso (555)

Implementa el método (estático) PhoneNumber.IsFake() para detectar si el número de teléfono es falso usando la información del número de teléfono producida en la tarea 1.

PhoneNumber.IsFake(PhoneNumbers.Analyze("631-555-1234"));
// => true
Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
C# Exercism

¿Todo listo para empezar Análisis de números de teléfono?

Regístrate en Exercism para aprender y dominar C# con 62 conceptos178 ejercicios y mentoría humana real, todo gratis.