当前位置: 代码迷 >> VC >> 输入一个汉字的时分自动转换成汉字的第一个拼音字母显示出来
  详细解决方案

输入一个汉字的时分自动转换成汉字的第一个拼音字母显示出来

热度:6051   发布时间:2013-02-25 00:00:00.0
输入一个汉字的时候自动转换成汉字的第一个拼音字母显示出来?
输入一个名字
立刻得到他每个汉字的首字母!!!

------解决方案--------------------------------------------------------
似乎难度很大
------解决方案--------------------------------------------------------
#region 取得简体中文首拼码
/// <summary>
/// 获取简体中文拼音首字母类
/// </summary>
public class CNspellTranslator
{

#region 方法二(比较完善)

/// <summary > 
/// 返回字符串的首写字母字符串 
/// </summary > 
/// <param name= "as_indexTxt " >需得到首写字母的字符串 </param > 
/// <returns > </returns > 
public static String UtilIndexCode(String as_indexTxt)
{
string ls_temp = null;
for (int i = 0; i < as_indexTxt.Length; i++)
ls_temp = ls_temp + GetOneIndex(as_indexTxt.Substring(i, 1));
return ls_temp;


/// <summary>
/// 得到单个字符的首字母
/// </summary>
/// <param name="as_oneIndexTxt">要得到字母的字符</param>
/// <returns></returns>
private static String GetOneIndex(String as_oneIndexTxt)
{
if (Convert.ToChar(as_oneIndexTxt) >= 0 && Convert.ToChar(as_oneIndexTxt) < 256)
return as_oneIndexTxt;
else
return GetGbkX(as_oneIndexTxt);
}
/// <summary>
/// 根据汉字拼音排序得到首字母
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
private static string GetGbkX(string as_str)
{
if (as_str.CompareTo("吖 ") < 0)
{
return as_str;
}
if (as_str.CompareTo("八 ") < 0)
{
return "A";
}

if (as_str.CompareTo("嚓 ") < 0)
{
return "B";
}

if (as_str.CompareTo("咑 ") < 0)
{
return "C";
}
if (as_str.CompareTo("妸 ") < 0)
{
return "D";
}
if (as_str.CompareTo("发 ") < 0)
{
return "E";
}
if (as_str.CompareTo("旮 ") < 0)
{
return "F";
}
if (as_str.CompareTo("铪 ") < 0)
{
return "G";
}
if (as_str.CompareTo("讥 ") < 0)
{
return "H";
}
if (as_str.CompareTo("咔 ") < 0)
{
return "J";
}
if (as_str.CompareTo("垃 ") < 0)
{
return "K";