在 C# 中将字符串格式化为电话号码

本文将向你介绍如何在 C# 中格式化电话号码。我们将深入讨论实现并了解其执行。

首先,我们将导入库 System 以使用 C# 的函数或方法。

我们还需要另一个库 System.Text.RegularExpressions,以使用我们示例中的正则表达式来格式化 C# 中的电话号码。

using System;
using System.Text.RegularExpressions;

现在我们将创建一个名为 PhoneFormatter 的类,在该类中,我们将执行所有操作。

class PhoneFormatter {}

C# 中使用 formatPhNumber() 方法将字符串格式化为电话号码

我们将使用 public 访问修饰符为数据类型字符串创建一个名为 formatPhNumber() 的方法,并在预定义的 PhoneFormatter 类中传递数据类型字符串的两个参数,分别名为 phoneNumphoneFormat 类。

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() 方法,该方法需要两个参数,分别是 phoneNumphoneFormat

因此,我们将使用 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