Kurzusok
/
C#
C#
/
Feladatok
/
Telefonszám-elemzés
Telefonszám-elemzés

Telefonszám-elemzés

Tanulófeladat

Bevezetés

Tuple-ök

A C#-ban a tuple egy olyan adatszerkezet, amely adatokat rendez, és két vagy több mezőt tartalmaz bármilyen típusból.

A tuple-t általában úgy hozzuk létre, hogy 2 vagy több, vesszővel elválasztott kifejezést zárójelek közé teszünk.

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

A tuple használható értékadási és inicializálási műveletekben, visszatérési értékként vagy metódusargumentumként.

A mezők a pont jelöléssel érhetők el. Alapértelmezés szerint az első mező az Item1, a második az Item2, stb. A nem alapértelmezett neveket alább tárgyaljuk.

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

A Item1 és hasonló mezőnevek nem teszik olvashatóvá a kódot. Az alábbi kód 2 módot mutat be a tuple-ök mezőinek elnevezésére. Vegyük észre azt is, hogy az alábbi kódban a var használható tuple-ökkel, és a típus kikövetkeztethető. Ez ugyanúgy működik elnevezett és névtelen mezőkkel rendelkező tuple-ök esetén is.

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

Utasítások

Ebben a feladatban telefonszámokat fogsz elemezni.

Két funkciót kell megvalósítanod.

A rutinoknak átadott telefonszámok garantáltan NNN-NNN-NNNN formátumúak, például 212-515-9876, és nem null értékűek.

1. Egy telefonszám elemzése

Az elemzésnek 3 adatot kell visszaadnia:

  1. Annak jelzése, hogy a szám New York-i körzetszámmal kezdődik-e, azaz az első 3 számjegy a 212
  2. Annak jelzése, hogy a szám hamis-e, mert az 5. és 7. pozíció között (1-től számozva) 555 szerepel előtagként
  3. A szám utolsó 4 számjegye.

Valósítsd meg a (statikus) PhoneNumber.Analyze() metódust, amely előállítja a telefonszám adatait.

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

2. Annak felismerése, hogy egy telefonszám előtagkódja hamis-e (555)

Valósítsd meg a (statikus) PhoneNumber.IsFake() metódust, amely az 1. részfeladatban előállított telefonszám-adatok alapján megállapítja, hogy a telefonszám hamis-e.

PhoneNumber.IsFake(PhoneNumbers.Analyze("631-555-1234"));
// => true
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
C# Exercism

Készen állsz elkezdeni a(z) Telefonszám-elemzés feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) C# nyelvet 62 fogalom178 feladat segítségével, valódi emberi mentorálással, mindez ingyen.