将卡号转换为XXXX-XXXX-XXXX-0000格式

Mas*_*oda 1 c# string.format

我有一个16个字符的字符串,通过这样的方式:

1234567891234567
Run Code Online (Sandbox Code Playgroud)

我需要能够像在系统中那样格式化字符串,即

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

请注意,上面显示的4567位数字与卡号的后四位数字有关.

这个问题有助于将字符串格式化为类似1234-5678-9123-4567

但它对上面要求的格式没有帮助.

在寻找答案的同时,我也遇到了以下解决方案:

    string[] subStrings = Enumerable.Range(0, 4).Select(n => cardNumber.Substring(n * 4, 4)).ToArray();
    string result = String.Format("{0}-{1}-{2}-{3}", subStrings);
Run Code Online (Sandbox Code Playgroud)

但同样这只会输出字符串 1234-5678-9123-4567

我似乎已经达到了解决方案的一部分,但不能格式化其余部分.

Hab*_*bib 6

如果您的字符串信用卡号码始终为16位数,那么您可以执行以下操作:

string str = "1234567891234567";    
string output = "XXXX-XXXX-XXXX-" + str.Substring(str.Length - 4);
Run Code Online (Sandbox Code Playgroud)