Как изменить первый символ в объекте StringBuilder?

Как можно дополнить существующий метод CapitalizeAfter(this string s, string culture), чтобы первая буква каждой строки была написана заглавной?Изначально метод изменяет первые буквы после точки на заглавные.
  • 28 февраля 2024 г. 0:38
Ответы на вопрос 1
Для изменения первого символа в объекте StringBuilder можно воспользоваться методом Insert(), чтобы вставить новый символ на первую позицию. Например:

```csharp
StringBuilder sb = new StringBuilder("example");
sb.Insert(0, 'E');
Console.WriteLine(sb.ToString()); // будет выведено "Example"
```

Чтобы дополнить существующий метод CapitalizeAfter() так, чтобы первая буква каждой строки была написана заглавной, можно модифицировать метод следующим образом:

```csharp
public static string CapitalizeAfter(this string s, string culture)
{
    TextInfo textInfo = new CultureInfo(culture).TextInfo;
    string[] sentences = s.Split('.'); // разбиваем строку на предложения
    
    for (int i = 0; i < sentences.Length; i++)
    {
        sentences[i] = sentences[i].Trim(); // удаляем лишние пробелы
        if (!string.IsNullOrWhiteSpace(sentences[i]))
        {
            sentences[i] = char.ToUpper(sentences[i][0]) + sentences[i].Substring(1);
        }
    }
    
    return string.Join(". ", sentences); // собираем строку обратно, разделяя предложения точкой
}
```

Теперь метод будет изменять первые буквы каждой строки на заглавные, а не только после точек.
Похожие вопросы