将字符串转换为借记卡格式

Mr.*_*cal 3 c# string-formatting

我有这样的字符串

"6s49fw7eq7ews5th"
Run Code Online (Sandbox Code Playgroud)

我正在尝试像这样格式化

XXXX-XXXX-XXXX-XXXX
Run Code Online (Sandbox Code Playgroud)

我该怎么做string.Format

Wai*_*Lee 5

另一种LINQ方法。我使用Enumerable.Range最小化重复的代码和幻数。

使用String.Join

string cardNumber = "1234567890123456";
IEnumerable<string> subStrings = Enumerable.Range(0, 4)
    .Select(n => cardNumber.Substring(n * 4, 4));

string result = String.Join("-", subStrings);
Console.WriteLine(result);
Run Code Online (Sandbox Code Playgroud)

运行它在这里的ideone.com。


使用String.Format

string cardNumber = "1234567890123456";
string[] subStrings = Enumerable.Range(0, 4)
    .Select(n => cardNumber.Substring(n * 4, 4)).ToArray();

string result = String.Format("{0}-{1}-{2}-{3}", subStrings);
Console.WriteLine(result);
Run Code Online (Sandbox Code Playgroud)

运行它在这里的ideone.com。