public static void Main()
Console.WriteLine(Tokenize("1234567890123456"));
Console.WriteLine(Tokenize("123456789012345"));
Console.WriteLine(Tokenize("12345678901234"));
Console.WriteLine(Tokenize("1234567890123"));
Console.WriteLine(Tokenize("123456789012"));
Console.WriteLine(Tokenize("12345678901"));
Console.WriteLine(Tokenize("1234567890"));
Console.WriteLine(Tokenize("123456789"));
Console.WriteLine(Tokenize("12345678"));
Console.WriteLine(Tokenize("1234567"));
Console.WriteLine(Tokenize("123456"));
Console.WriteLine(Tokenize("12345"));
Console.WriteLine(Tokenize("1234"));
Console.WriteLine(Tokenize("123"));
private static string Tokenize(string accountNumber)
int bodyLength = accountNumber.Length - 4;
throw new Exception($"accountNumber length of {accountNumber.Length} is too short.");
int headerLength = bodyLength / 2 + bodyLength % 2;
string header = accountNumber.Substring(0, headerLength);
Console.Write(header + "-");
string middle = accountNumber.Substring(headerLength, bodyLength / 2);
Console.Write(middle + "-");
string tail = accountNumber.Substring(bodyLength);
Console.Write(tail + Environment.NewLine);
return header + middle + tail;