using System.Collections.Specialized;
using System.Text.RegularExpressions;
public static void Main()
var cardNumber = "3456123434561234";
var firstDigits = cardNumber.Substring(0, 12);
var lastDigits = cardNumber.Substring(cardNumber.Length - 4, 4);
var requiredMask = new String('X', cardNumber.Length - firstDigits.Length - lastDigits.Length);
var maskedString = string.Concat(firstDigits, requiredMask, lastDigits);
var maskedCardNumberWithSpaces = Regex.Replace(maskedString, ".{4}", "$0 ");
Console.WriteLine(maskedCardNumberWithSpaces);