Треки
/
C#
C#
/
Вправи
/
Аналіз телефонних номерів
Аналіз телефонних номерів

Аналіз телефонних номерів

Навчальна вправа

Вступ

Кортежі

У C# кортеж - це структура даних, яка організовує дані та містить два або більше полів будь-якого типу.

Кортеж зазвичай створюють, розміщуючи 2 або більше виразів, розділених комами, у дужках.

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

Кортеж можна використовувати в операціях присвоєння та ініціалізації, як повернене значення або аргумент методу.

Поля витягують за допомогою синтаксису з крапкою. Типово перше поле - Item1, друге - Item2 і так далі. Нетипові назви розглянемо нижче.

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

Назви полів Item1 тощо не роблять код читабельним. Код нижче показує 2 способи назвати поля кортежів. Звернімо також увагу, що в коді нижче var можна використовувати з кортежами, а тип виводиться. Це однаково добре працює для кортежів з названими та неназваними полями.

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

Вказівки

У цій вправі ми аналізуємо номери телефонів.

Потрібно реалізувати 2 можливості.

Номери телефонів, які передаються в підпрограми, гарантовано мають вигляд NNN-NNN-NNNN, наприклад 212-515-9876, і не дорівнюють null.

1. Проаналізувати номер телефону

Наш аналіз має повертати 3 частини даних

  1. Ознака того, чи має номер нью-йоркський код набору, тобто 212 як перші 3 цифри
  2. Ознака того, чи є номер фальшивим, якщо в позиціях з 5 по 7 (нумерація з 1) стоїть префіксний код 555
  3. Останні 4 цифри номера.

Реалізуйте (статичний) метод PhoneNumber.Analyze(), який повертає інформацію про номер телефону.

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

2. Визначити, чи має номер телефону фальшивий префіксний код (555)

Реалізуйте (статичний) метод PhoneNumber.IsFake(), який визначає, чи є номер телефону фальшивим, використовуючи інформацію про номер, отриману в завданні 1.

PhoneNumber.IsFake(PhoneNumbers.Analyze("631-555-1234"));
// => true
Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
C# Exercism

Час розпочати Аналіз телефонних номерів?

Зареєструйтеся на Exercism, щоб вивчати й опановувати C#, а також 62 концепції178 вправ та справжнє наставництво від людей, і все це безкоштовно.