【发布时间】:2013-09-27 00:56:08
【问题描述】:
我想验证 c# 中的名称字段。 我的目标是将名字和姓氏的第一个字母大写,但是 保留介词(在我的语言中,名称中有“de”、“da”、“dos”等介词) 小写。 我做了一些东西,但问题是我正在使用 Replace(),并且碰巧,如果名称以“l”开头,则每个“l”都会很大,例如:
“Lake Like de Lol”将是“Lake Like de LoL”
私有字符串名称;
public string Nome
{
get { return nome; }
set
{
value = value.ToLower();
value = value.Replace(value[0].ToString(), value[0].ToString().ToUpper());
for (int i = 0; i < value.Length; i++)
{
if (value[i].ToString() == " " && String.Concat(value[i + 1], value[i + 2], value[i + 3]) != "de " && String.Concat(value[i + 1], value[i + 2], value[i + 3]) != "da " && String.Concat(value[i + 1], value[i + 2], value[i + 3]) != "dos " && String.Concat(value[i + 1], value[i + 2], value[i + 3]) != "das " && String.Concat(value[i + 1], value[i + 2], value[i + 3]) != " ")
{
value = value.Replace(value[i + 1].ToString(), value[i + 1].ToString().ToUpper());
}
}
nome = value;
}
}
有没有人知道这个问题的解决方案?感谢和抱歉英语不好!
【问题讨论】:
标签: c# string replace uppercase