admin 管理员组文章数量: 893893
C#汉字转拼音首字母
// <summary>/// 得到汉字拼音首字母/// </summary>/// <param name="chineseStr"></param>/// <returns></returns>public static string HZToPYSimple(string chineseStr){try{byte[] b = System.Text.UnicodeEncoding.Default.GetBytes(chineseStr);string res = "";for (int i = 0; i < b.Length; ){if (i == b.Length - 1){if (char.IsNumber((char)b[i]) || char.IsLetter((char)b[i]))res += (char)b[i++];else{i++;continue;}}else if (Convert.ToByte(b[i]) > 127)//汉字{string tmp = System.Text.UnicodeEncoding.Default.GetString(b, i, 2);tmp = HZToCode(tmp, "拼");if (tmp.Length > 0)res += tmp[0];i += 2;}else{if (char.IsNumber((char)b[i]) || char.IsLetter((char)b[i]))res += (char)b[i++];else{i++;continue;}}}return res.ToUpper();}catch (Exception ex){throw new Exception("错误:", ex);}}
/// <summary>/// 转换/// </summary>/// <param name="chineseStr"></param>/// <param name="?"></param>/// <returns></returns>public static string HZToCode(string chineseStr,)//typeStr是指拼音还是五笔码{try{string resultStr = "";byte[] arrCN = Encoding.Default.GetBytes(chineseStr);if (arrCN.Length > 1){int area = (short)arrCN[0];int pos = (short)arrCN[1];int code = (area << 8) + pos;int[] areacode = { 45217, 45253, 45761, 46318, 46826, 47010, 47297, 47614, 48119, 48119, 49062, 49324, 49896, 50371, 50614, 50622, 50906, 51387, 51446, 52218, 52698, 52698, 52698, 52980, 53689, 54481 };for (int i = 0; i < 26; i++){int max = 55290;if (i != 25) max = areacode[i + 1];if (areacode[i] <= code && code < max){resultStr = Encoding.Default.GetString(new byte[] { (byte)(65 + i) });break;}}}return resultStr;}catch (Exception ex){throw new Exception("错误:", ex);}}
本文标签: C汉字转拼音首字母
版权声明:本文标题:C#汉字转拼音首字母 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1687603093h120028.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论