應用程序中經常需要用到漢字的拼音簡碼,下面介紹如何使用C#代碼獲得漢字的拼音首字母,代碼如下:
private string Chinese(string str)
{
if (str.CompareTo("吖") < 0)
{
string s = str.Substring(0, 1).ToUpper();
if (char.IsNumber(s, 0))
{
return "0";
}
else
{
return s;
}
}
else if (str.CompareTo("八") < 0)
{
return "A";
}
else if (str.CompareTo("嚓") < 0)
{
return "B";
}
else if (str.CompareTo("咑") < 0)
{
return "C";
}
else if (str.CompareTo("妸") < 0)
{
return "D";
}
else if (str.CompareTo("發(fā)") < 0)
{
return "E";
}
else if (str.CompareTo("旮") < 0)
{
return "F";
}
else if (str.CompareTo("鉿") < 0)
{
return "G";
}
else if (str.CompareTo("譏") < 0)
{
return "H";
}
else if (str.CompareTo("咔") < 0)
{
return "J";
}
else if (str.CompareTo("垃") < 0)
{
return "K";
}
else if (str.CompareTo("嘸") < 0)
{
return "L";
}
else if (str.CompareTo("拏") < 0)
{
return "M";
}
else if (str.CompareTo("噢") < 0)
{
return "N";
}
else if (str.CompareTo("妑") < 0)
{
return "O";
}
else if (str.CompareTo("七") < 0)
{
return "P";
}
else if (str.CompareTo("亽") < 0)
{
return "Q";
}
else if (str.CompareTo("仨") < 0)
{
return "R";
}
else if (str.CompareTo("他") < 0)
{
return "S";
}
else if (str.CompareTo("哇") < 0)
{
return "T";
}
else if (str.CompareTo("夕") < 0)
{
return "W";
}
else if (str.CompareTo("丫") < 0)
{
return "X";
}
else if (str.CompareTo("帀") < 0)
{
return "Y";
}
else if (str.CompareTo("咗") < 0)
{
return "Z";
}
else
{
return "0";
}
}
這樣不能100%都對
有兩個問題: 1. 多音字如何處理? 2. GBK或GB2312的漢字不是嚴格的拼音排列, 有部分漢字排在最后 事實上我們需要這個功能, 只能用一個3萬個漢字的表解決的。