在 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