看到了一些相关的程序,但是都只是纯汉字转化为拼音的做法如“我是一个中国人”to“wo-shi-yi-ge-zhong-guo-ren”
通常的做法如下(baidu一下有很多代码,只取其中关键部分贴上来): public static string convert(string chrstr)
{
byte[] array = new byte[2];
string returnstr="";
int chrasc=0;
int i1 = 0;
int i2 =0;
char[] nowchar=chrstr.ToCharArray();
for (int j=0;j<nowchar.Length ;j++)
{
array = System.Text.Encoding.Default.GetBytes(nowchar[j].ToString ());
i1 = (short)(array[0] );
i2 = (short)(array[1] );<p style=line-height: 150%> chrasc=i1*256+i2-65536;
if (chrasc>0 && chrasc<160)
{
returnstr+=nowchar[j]+“-”;
}
else
{
for (int i=(pyvalue.Length -1);i>=0;i--)
{
if (pyvalue[i]<=chrasc)
{
returnstr+=pystr[i]+“-”;
break;
}
}
}
}
return returnstr;}
}
假如出现“我是一个,haha,中国人”,其中标点符号可以用正则表达式匹配掉,但是英文或者字母部分如何处理呢?本人菜鸟,期望高手能把代码完善一下,输入下列结果:“wo-shi-yi-ge-haha-zhong-guo-ren”
通常的做法如下(baidu一下有很多代码,只取其中关键部分贴上来): public static string convert(string chrstr)
{
byte[] array = new byte[2];
string returnstr="";
int chrasc=0;
int i1 = 0;
int i2 =0;
char[] nowchar=chrstr.ToCharArray();
for (int j=0;j<nowchar.Length ;j++)
{
array = System.Text.Encoding.Default.GetBytes(nowchar[j].ToString ());
i1 = (short)(array[0] );
i2 = (short)(array[1] );<p style=line-height: 150%> chrasc=i1*256+i2-65536;
if (chrasc>0 && chrasc<160)
{
returnstr+=nowchar[j]+“-”;
}
else
{
for (int i=(pyvalue.Length -1);i>=0;i--)
{
if (pyvalue[i]<=chrasc)
{
returnstr+=pystr[i]+“-”;
break;
}
}
}
}
return returnstr;}
}
假如出现“我是一个,haha,中国人”,其中标点符号可以用正则表达式匹配掉,但是英文或者字母部分如何处理呢?本人菜鸟,期望高手能把代码完善一下,输入下列结果:“wo-shi-yi-ge-haha-zhong-guo-ren”
[A-Za-z]
我以前也做过这类似的库。需要共享的话告诉一声。
Mail:[email protected]
上传文件有限。测试应该够用了。
http://www.cnblogs.com/ATGO/archive/2008/05/15/1198624.html