Обновить часть строки в титульный регистр

У меня есть последовательность строк, которые я получаю в следующем формате:

  • Project1: Toyota: Corolla
  • Project1: Hoyota: Accord
  • Project1: Toyota: Camry

Как вы можете видеть, средняя часть строки не соответствует случаю (для Corolloa она указана как toyota). Мне нужно изменить выше следующим образом:

  • Проект 1: Тойота: Королла
  • Проект 1: Х о йота: Аккорд
  • Проект1: Тойота: Камри

Я хочу сделать среднюю часть строки заголовком.

Я использую следующие

static TextInfo textInfo = new CultureInfo( "en-US" ).TextInfo;

и использование.ToTitleCase, но проблема с TitleCase заключается в том, что если строка находится в UPPERCASE, она не изменится на Title Case. Знаем ли мы, как обрабатывать случай, когда строка в верхнем регистре.

3 ответа

Решение

Ты можешь использовать .ToTitleCase()

var myString = "Project1:toyota:Corolla";
TextInfo textInfo = new CultureInfo( "en-US" ).TextInfo;
myString = textInfo.ToTitleCase(myString);

Вы можете использовать TextInfo.ToTitleCase

textInfo.ToTitleCase("Project1:toyota:Corolla")

Альтернативное регулярное выражение:

var result = Regex.Replace("Project1:toyota:Corolla", @"\b[a-z]", m => m.Value.ToUpper());
Другие вопросы по тегам