C# 无法获得正确的ToTitleCase
我尝试了三种方法来为一系列的所有大写字母找到合适的解决方案。C# 无法获得正确的ToTitleCase,c#,string,C#,String,我尝试了三种方法来为一系列的所有大写字母找到合适的解决方案。 这是我的密码: string testStr = "SYNDEGAARD"; string result1 = UppercaseFirst(testStr); string titleCase = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(testStr); string result2 = titleCase; CultureInfo culture_info = Thr
这是我的密码:
string testStr = "SYNDEGAARD";
string result1 = UppercaseFirst(testStr);
string titleCase = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(testStr);
string result2 = titleCase;
CultureInfo culture_info = Thread.CurrentThread.CurrentCulture;
TextInfo text_info = culture_info.TextInfo;
string result3 = text_info.ToTitleCase(testStr);
private static string UppercaseFirst(string s)
{
// Check for empty string.
if (string.IsNullOrEmpty(s))
{
return string.Empty;
}
// Return char and concat substring.
return char.ToUpper(s[0]) + s.Substring(1);
}
这三个结果都是“Syndengard”。它永远不会变为“Syndengard” 只需更新到这个
return char.ToUpper(s[0]) + s.Substring(1).ToLower();
只要更新到这个
return char.ToUpper(s[0]) + s.Substring(1).ToLower();
无法获得所需结果的原因是,如果输入字符串都是大写字母,则
ToTitleCase()
不起作用
您可以尝试将SYNDEGAARD
更改为SYNDEGAARDx
,并查看差异
至于为什么这是默认行为,我不确定
此外,您忘了在此函数中添加ToLower()
,以确保前面的文本是小写的
private static string UppercaseFirst(string s)
{
// Check for empty string.
if (string.IsNullOrEmpty(s))
{
return string.Empty;
}
// Return char and concat substring.
return char.ToUpper(s[0]) + s.Substring(1).ToLower(); // Missing ToLower()
}
编辑:
这就是为什么大写文本不会发生任何变化
将指定的字符串转换为标题大小写(不包括
完全大写,被认为是首字母缩略词)
无法获得所需结果的原因是,如果输入字符串都是大写字母,则
ToTitleCase()
不起作用
您可以尝试将SYNDEGAARD
更改为SYNDEGAARDx
,并查看差异
至于为什么这是默认行为,我不确定
此外,您忘了在此函数中添加ToLower()
,以确保前面的文本是小写的
private static string UppercaseFirst(string s)
{
// Check for empty string.
if (string.IsNullOrEmpty(s))
{
return string.Empty;
}
// Return char and concat substring.
return char.ToUpper(s[0]) + s.Substring(1).ToLower(); // Missing ToLower()
}
编辑:
这就是为什么大写文本不会发生任何变化
将指定的字符串转换为标题大小写(不包括
完全大写,被认为是首字母缩略词)
使用Humanizer,它将为您提供一系列用于转换和操作字符串、枚举、日期、时间、时间跨度、数字和数量的实用程序 Nuget包
使用Humanizer,它将为您提供一系列用于转换和操作字符串、枚举、日期、时间、时间跨度、数字和数量的实用程序 Nuget包
@Slai的可能副本-它不是一个特定的副本。这个问题的答案可以在那里找到,但它们不是同一个问题。可能是@Slai的重复-它不是特别重复的。这个问题的答案可以在那里找到,但它们不是同一个问题。谢谢,托洛尔修好了。谢谢,托洛尔修好了。