Обновить часть строки в титульный регистр
У меня есть последовательность строк, которые я получаю в следующем формате:
- 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());