声明:本文仅提供一种编程思路,所提供代码仅供参考,如需使用,请自行完善。我们在做程序的的时候经常要处理用户输入,作为我们的主要语言中文,经常会出现全角、半角的问题,这会在查询时给我们带来很多麻烦。本文采用扩展方法解决全半角切换的问题,效果图
代码如下: publicstaticvoidExample(stringuserInput){stringsbc=userInput.ToSBC();//转全角//具体操作,如存入数据库stringdbc=userInput.ToDBC();//转半角//具体操作,如存入数据库}///<summary>///转全角(SBCcase)///</summary>///<paramname="input">任意字符串</param>///<returns>全角字符串</returns>publicstaticstringToSBC(thisstringinput){char[]c=input.ToCharArray();for(inti=0;i<c.Length;i++){if(c[i]==32){c[i]=(char)12288;continue;}if(c[i]<127)c[i]=(char)(c[i]+65248);}returnnewstring(c);}///<summary>///转半角(DBCcase)///</summary>///<paramname="input">任意字符串</param>///<returns>半角字符串</returns>publicstaticstringToDBC(thisstringinput){char[]c=input.ToCharArray();for(inti=0;i<c.Length;i++){if(c[i]==12288){c[i]=(char)32;continue;}if(c[i]>65280&&c[i]<65375)c[i]=(char)(c[i]-65248);}returnnewstring(c);}
中文处理中另一个常用的是获取拼音首字母,如:中华人民共和国,首字母为ZHRMGHG。很多库存管理程序中都将这个作为助记码,用作快速查询。这里只给出扩展定义和示例,具体实现网上很多,但大部分都不能解决多音字的问题。
publicstaticvoidExample2(stringproductName){stringshortName=productName.GetChineseSpell();}///<summary>///获取汉字拼音首字母///</summary>///<paramname="s">输入</param>///<returns>汉字拼音首字母,其它字符原样返回</returns>publicstaticstringGetChineseSpell(thisstrings){returnnull;//请自行完成}
还有中文简体繁体互转,也可以扩展进来。