Track
/
C#
C#
/
Esercizi
/
Analisi dei numeri di telefono
Analisi dei numeri di telefono

Analisi dei numeri di telefono

Esercizio di apprendimento

Introduzione

Tuple

In C#, una tupla è una struttura dati che organizza i dati e contiene due o più campi di qualsiasi tipo.

Di solito una tupla si crea inserendo 2 o più espressioni separate da virgole all'interno di una coppia di parentesi tonde (()).

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

Una tupla può essere usata in operazioni di assegnazione e inizializzazione, come valore restituito o come argomento di un metodo.

I campi si estraggono usando la sintassi con il punto. Per impostazione predefinita, il primo campo è Item1, il secondo Item2, e così via. I nomi non predefiniti sono trattati più avanti.

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

I nomi dei campi come Item1 non rendono il codice leggibile. Il codice qui sotto mostra 2 modi per dare un nome ai campi delle tuple. Nota anche, nel codice qui sotto, che var può essere usato con le tuple e il tipo viene inferito. Questo funziona altrettanto bene con tuple che hanno campi con nome e campi senza nome.

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

Istruzioni

In questo esercizio analizzerai numeri di telefono.

Ti viene chiesto di implementare 2 funzionalità.

I numeri di telefono passati alle routine sono garantiti nel formato NNN-NNN-NNNN, ad esempio 212-515-9876, e non nulli.

1. Analizza un numero di telefono

La tua analisi dovrebbe restituire 3 informazioni:

  1. Un'indicazione se il numero ha un prefisso di New York, cioè 212 come prime 3 cifre
  2. Un'indicazione se il numero è fasullo, avendo 555 come prefisso nelle posizioni da 5 a 7 (numerando da 1)
  3. Le ultime 4 cifre del numero.

Implementa il metodo (statico) PhoneNumber.Analyze() per produrre le informazioni sul numero di telefono.

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

2. Rileva se un numero di telefono ha un prefisso fasullo (555)

Implementa il metodo (statico) PhoneNumber.IsFake() per rilevare se il numero di telefono è fasullo utilizzando le informazioni sul numero di telefono prodotte nell'attività 1.

PhoneNumber.IsFake(PhoneNumbers.Analyze("631-555-1234"));
// => true
Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
C# Exercism

Vuoi iniziare Analisi dei numeri di telefono?

Iscriviti a Exercism per imparare e padroneggiare C# con 62 concetti178 esercizi e il mentoring di persone reali, tutto gratis.