Первый for
л oop не нужен; один l oop должен повторять столько разделителей, сколько в тексте. Также вы получите исключение в этой строке
string remove = sub.Remove(4, text.Length);
, так как вы пытаетесь создать новую строку, удалив часть всего текста, начиная с 4-го символа и набирая столько символов, сколько и текст .Длина - эффективно выходит за пределы. Попробуйте это:
public static void CaseFlip(string text)
{
Console.WriteLine(" CaseFlip -- Output");
Console.WriteLine("==============================================================================");
char[] delimiters = { '/' };
string[] splitString = text.Split(delimiters);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < splitString.Length; i++)
{
char[] charsInLine = splitString[i].ToCharArray();
for (int k = 0; k < charsInLine.Length; k++)
{
sb.Append(k % 3 == 0 ? char.ToUpper(charsInLine[k]) : charsInLine[k]);
}
sb.Append(' ');
}
Console.WriteLine(sb.ToString());
Console.WriteLine(" ");
}
Вы должны рассмотреть возможность использования класса StringBuilder для строковых операций, подобных этой. Чтобы использовать его, просто добавьте using System.Text
в начало вашего файла.