學習軌道
/
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. 號碼的區號是否為紐約,也就是前 3 個數字是否為 212
  2. 號碼是否為假號碼,也就是第 5 到第 7 位數字(從 1 開始算)是否為前綴碼 555
  3. 號碼的後 4 位數字。

實作(靜態)方法PhoneNumber.Analyze()來產生電話號碼資訊。

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

2. 偵測電話號碼是否有假的前綴碼(555)

使用第 1 項任務產生的電話號碼資訊,實作(靜態)方法PhoneNumber.IsFake()來判斷這個電話號碼是否為假號碼。

PhoneNumber.IsFake(PhoneNumbers.Analyze("631-555-1234"));
// => true
透過 GitHub 編輯 連結會在新視窗或分頁中開啟
C# Exercism

準備好開始 電話號碼分析 了嗎?

註冊 Exercism,透過 62 個概念178 個練習 和真人引導來學習並精通 C#,全部免費。