获取 汉字的首字母(例如张三返回zs)--核心方法chinesecap()

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace getPinYin
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string a = this.textBox1.Text;
            classfun f = new classfun();
            string k = f.chinesecap(a);
            MessageBox.Show(k);
        }


        #region 1

        public class classfun
        {
            private string capstr;

            public classfun()
            {
                //
                // todo: 在此处添加构造函数逻辑
                //
            }
            public string chinesecap(string chinesestr)
{


byte[] zw = new byte[2];
long chinesestr_int;
string charstr,chinastr="";
for (int i=0;i<=chinesestr.Length-1;i++)
{
charstr=chinesestr.Substring(i,1).ToString();
zw=System.Text.Encoding.Default.GetBytes(charstr);
// 得到汉字符的字节数组
if(zw.Length==2)
{
int i1 = (short)(zw[0]);
int i2 = (short)(zw[1]);
chinesestr_int=i1*256+i2;
//table of the constant list
// a; //45217..45252
// b; //45253..45760
// c; //45761..46317
// d; //46318..46825
// e; //46826..47009
// f; //47010..47296
// g; //47297..47613

// h; //47614..48118
// j; //48119..49061
// k; //49062..49323
// l; //49324..49895
// m; //49896..50370
// n; //50371..50613
// o; //50614..50621
// p; //50622..50905
// q; //50906..51386

// r; //51387..51445
// s; //51446..52217
// t; //52218..52697
//没有u,v
// w; //52698..52979
// x; //52980..53640
// y; //53689..54480
// z; //54481..55289

if ((chinesestr_int>=45217) && (chinesestr_int<=45252))
{
chinastr= "a";
}
else if ((chinesestr_int>=45253) && (chinesestr_int<=45760))
{
chinastr= "b";
}
else if ((chinesestr_int>=45761) && (chinesestr_int<=46317))
{
chinastr= "c";

}
else if ((chinesestr_int>=46318) && (chinesestr_int<=46825))
{
chinastr= "d";
}
else if ((chinesestr_int>=46826) && (chinesestr_int<=47009))
{
chinastr= "e";
}
else if ((chinesestr_int>=47010) && (chinesestr_int<=47296))
{
chinastr= "f";
}
else if ((chinesestr_int>=47297) && (chinesestr_int<=47613))
{
chinastr= "g";
}
else if ((chinesestr_int>=47614) && (chinesestr_int<=48118))
{

chinastr= "h";
}

else if ((chinesestr_int>=48119) && (chinesestr_int<=49061))
{
chinastr= "j";
}
else if ((chinesestr_int>=49062) && (chinesestr_int<=49323))
{
chinastr= "k";
}
else if ((chinesestr_int>=49324) && (chinesestr_int<=49895))
{
chinastr= "l";
}
else if ((chinesestr_int>=49896) && (chinesestr_int<=50370))
{
chinastr= "m";
}

else if ((chinesestr_int>=50371) && (chinesestr_int<=50613))
{
chinastr= "n";

}
else if ((chinesestr_int>=50614) && (chinesestr_int<=50621))
{
chinastr= "o";
}
else if ((chinesestr_int>=50622) && (chinesestr_int<=50905))
{
chinastr= "p";

}
else if ((chinesestr_int>=50906) && (chinesestr_int<=51386))
{
chinastr= "q";

}

else if ((chinesestr_int>=51387) && (chinesestr_int<=51445))
{
chinastr= "r";
}
else if ((chinesestr_int>=51446) && (chinesestr_int<=52217))
{
chinastr= "s";
}
else if ((chinesestr_int>=52218) && (chinesestr_int<=52697))
{
chinastr= "t";
}
else if ((chinesestr_int>=52698) && (chinesestr_int<=52979))
{
chinastr= "w";
}
else if ((chinesestr_int>=52980) && (chinesestr_int<=53640))
{
chinastr= "x";
}
else if ((chinesestr_int>=53689) && (chinesestr_int<=54480))
{
chinastr= "y";
}
else if ((chinesestr_int>=54481) && (chinesestr_int<=55289))
{
chinastr= "z";
}

}
else
{
capstr=chinesestr;
break;
}

capstr=capstr+chinastr;
}

 

return capstr;

}


        }


        #endregion
    }
}

posted @ 2007-05-11 16:24  磊.NET  阅读(293)  评论(0编辑  收藏  举报