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();
新聞熱點
疑難解答