簡體   English   中英

字符串轉換,每個單詞的第一個字符開頭

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM