i want to convert:
HECHT, WILLIAM
为了
Hecht, William
在C#中,有没有优雅的方法来做到这一点?
string name = "HECHT, WILLIAM";
string s = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(name.ToLower());
(注意它只能将小写字母转换为大写字母,因此要从小写字母开始)
我想指出的是,虽然这在理论上看起来很简单,但实际上正确地给每个人命名可能会非常复杂:
总之,这是需要考虑的事情。
public static string CamelCase(this string s)
{
if (String.IsNullOrEmpty(s))
s = "";
string phrase = "";
string[] words = s.Split(' ');
foreach (string word in words)
{
if (word.Length > 1)
phrase += word.Substring(0, 1).ToUpper() + word.Substring(1).ToLower() + " ";
else
phrase += word.ToUpper() + " ";
}
return phrase.Trim();
}
我投了Marc的答案,但这个也可以:
string s = Microsoft.VisualBasic.Strings.StrConv("HECHT, WILLIAM", VbStrConv.ProperCase,0);
你需要添加适当的引用,但我相信它可以处理所有大写输入。
private void label8_Click(object sender, EventArgs e)
{
nombre1.Text= NOMPROPIO(nombre1.Text);
}
string NOMPROPIO(string s)
{
if (String.IsNullOrEmpty(s))
s = "";
string phrase = "";
string[] words = s.Split(' ');
foreach (string word in words)
{
if (word.Length > 1)
phrase += word.Substring(0, 1).ToUpper() + word.Substring(1).ToLower() + " ";
else
phrase += word.ToUpper() + " ";
}
return phrase.Trim();
}
ToTitleCase()
函数能正确处理 "Peter O'Toole" 和 "Mary Jones-Smith" 吗? - Grant Wagner