[英]Regex first letter of each word Upper Case separated by spaces and 3 to 29 character long…C#
[英]string conversion, first character upper of each word
我想轉換:
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();
}
我投票贊成馬克的答案,但這也可以:
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();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.