1、WPF的一个触摸屏项目,需要输入姓名,但是屏幕不支持汉字输入,使用虚拟键盘不稳定,为了解决该问题特此进行处理。
2、新建一个类转换类,里面初始化一个数组,数组包含拼音,以及拼音下的常用的汉字。
3、根据拼音,对照出对应的汉字,然后在对汉字进行拆分,获取到单个汉字。
例子如下:
PRivate static readonly string[][] _Allhz = new string[][] { new string[]{"A","啊阿呵吖嗄腌锕錒"}, new string[]{"Ai","爱矮挨哎碍癌艾唉哀蔼隘埃皑呆嗌嫒瑷暧捱砹"}, new string[]{"An","按安暗岸俺案鞍氨胺厂广庵揞犴铵桉谙鹌埯黯"}, new string[]{"Ang","昂肮盎仰卬岇昻枊醃醠骯"}, new string[]{"Ao","袄凹傲奥熬懊敖翱澳嚣拗媪廒骜嗷坳遨聱螯獒鏊鳌鏖"}, new string[]{"Ba","把八吧爸拔罢跋巴芭扒坝霸叭靶笆疤耙捌粑茇岜鲅钯魃菝灞"}, new string[]{"Bai","百白摆败柏拜佰伯稗捭呗掰"},
~~~~~~~~//省去若干 new string[]{"Zui","最嘴醉罪堆咀觜蕞"}, new string[]{"Zun","尊遵鳟撙樽僎僔噂墫奠嶟拵捘捽栫瀳繜罇袸譐跧踆蹲銌鐏鱒鶎鷷"}, new string[]{"Zuo","做作坐左座昨凿琢撮佐笮"} };
/// <summary> /// 拼音转汉字 /// </summary> /// <param name="str"></param> /// <returns></returns> public static string ConvertPzToHz(string str) { str = str.ToLower();
if (str == null) return null; byte[] bAry = new byte[2]; StringBuilder rtnSb = new StringBuilder(); for (int j = 0; j < _Allhz.Length; j++) { string py = _Allhz[j][0].ToLower();
if (py.IndexOf(str) != -1) { rtnSb.Append(_Allhz[j][1]); break; } } return rtnSb.ToString(); }
//对汉字字符串进行分解
char[] chars = strMsg.ToCharArray();
新闻热点
疑难解答