在 C# 中將字串格式化為電話號碼
本文將向你介紹如何在 C# 中格式化電話號碼。我們將深入討論實現並瞭解其執行。
首先,我們將匯入庫 System
以使用 C# 的函式或方法。
我們還需要另一個庫 System.Text.RegularExpressions
,以使用我們示例中的正規表示式來格式化 C# 中的電話號碼。
using System;
using System.Text.RegularExpressions;
現在我們將建立一個名為 PhoneFormatter
的類,在該類中,我們將執行所有操作。
class PhoneFormatter {}
在 C#
中使用 formatPhNumber()
方法將字串格式化為電話號碼
我們將使用 public
訪問修飾符為資料型別字串建立一個名為 formatPhNumber()
的方法,並在預定義的 PhoneFormatter
類中傳遞資料型別字串的兩個引數,分別名為 phoneNum
和 phoneFormat
類。
class PhoneFormatter {
public static string formatPhNumber(string phoneNum, string phoneFormat) {}
}
完成這些步驟後,將應用檢查 phoneFormat
是否為空,我們將在接下來的步驟中呼叫此方法。它將分配此變數,在這種情況下,預設電話號碼格式為 (##) ###-####
。
if (phoneFormat == "") {
phoneFormat = "(##) ###-####";
}
我們將使用 Regex
類建立一個 regex
變數,並將一個值傳遞給它的建構函式。這兩行程式碼排除了 Regex's
值中的任何其他內容。
除數字外,任何字母或特殊字元都無法格式化電話號碼。
Regex regex = new Regex(@"[^\d]");
然後我們使用 Regex 庫中名為 Replace()
的另一個函式為變數 phoneNum
分配一個新值。
這將使用之前定義的正規表示式
格式並將其替換為我們將提供的電話號碼。
phoneNum = regex.Replace(phoneNum, "");
在這裡,我們使用條件來檢視變數 phoneNum
是否有值,表示 phoneNum
的長度大於 0
。
如果是這樣,電話號碼將被轉換為 64 位整數格式,電話格式為字串值,然後將其分配給變數 phoneNum
。
我們將在函式 formatPhNumber()
結束時返回 phoneNum
。
if (phoneNum.Length > 0) {
phoneNum = Convert.ToInt64(phoneNum).ToString(phoneFormat);
}
return phoneNum;
這是裡面的主要方法,我們將呼叫之前建立的方法來格式化電話號碼。
static void Main() {}
在 Main()
方法中,我們將初始化一個 string
變數,稱為 phNumber
。電話號碼將被儲存,以便將其作為引數傳遞給該方法。
string phNumber = "123456789";
最後,在 print
語句中,我們將呼叫 formatPhNumber()
方法,該方法需要兩個引數,分別是 phoneNum
和 phoneFormat
。
因此,我們將使用 phNumber
分配電話號碼並使用空字串分配電話格式。
正如我們之前討論過的,將空值傳遞給電話格式將自動分配之前初始化的預設值,它不會丟擲任何異常。
Console.WriteLine(formatPhNumber(phNumber, ""));
在 C#
中格式化電話號碼的完整原始碼
using System;
using System.Text.RegularExpressions;
class PhoneFormatter {
public static string formatPhNumber(string phoneNum, string phoneFormat) {
if (phoneFormat == "") {
phoneFormat = "(##) ###-####";
}
Regex regex = new Regex(@"[^\d]");
phoneNum = regex.Replace(phoneNum, "");
if (phoneNum.Length > 0) {
phoneNum = Convert.ToInt64(phoneNum).ToString(phoneFormat);
}
return phoneNum;
}
static void Main() {
string phNumber = "123456789";
Console.WriteLine(formatPhNumber(phNumber, ""));
}
}
輸出:
(12) 345-6789
I'm a Flutter application developer with 1 year of professional experience in the field. I've created applications for both, android and iOS using AWS and Firebase, as the backend. I've written articles relating to the theoretical and problem-solving aspects of C, C++, and C#. I'm currently enrolled in an undergraduate program for Information Technology.
LinkedIn