我有一个需要转换的字符串,以便将第一个字符转换为大写。使用ToTitleCase方法可以正常工作,除非有特殊字符。
下面是代码和预期结果
String textToConvert= "TEST^S CHECK"
TextInfo myTI = new CultureInfo("en-US",false).TextInfo;
return myTI.ToTitleCase(textToConvert.ToLower())
预期结果:测试^ s检查但是结果以Test ^ S Check的形式出现,其中“ S”在特殊字符后转换为大写^
仍然有将转换转换为预期结果的方法
ToTitleCase
是一种方便的方法,但是如果您需要更多细粒度的控制,则Regex可能是更好的选择:
string titleCase = Regex.Replace(textToConvert.ToLower(), @"^[a-z]|(?<= )[a-z]", match => match.Value.ToUpper());
[^[a-z]|(?<= )[a-z]
将匹配字符串开头的字母,并在字母前加一个空格。