提取汉字拼音的首字母+英文+数字
2011-04-21 21:36
411 查看
从网上找了个提取汉字拼音的例子,但是不通用于英文单词和数字,加之修改了一下,实现了
简单的功能,因为特殊的汉字还是不能提取出拼音的首字母的返回“”,测试实例和具体代码如下:
效果图1:
效果图2:
效果图3:
效果图4:
代码如下:
调用方法:
简单的功能,因为特殊的汉字还是不能提取出拼音的首字母的返回“”,测试实例和具体代码如下:
效果图1:
效果图2:
效果图3:
效果图4:
代码如下:
//这个方法是用来获得一个字符串的每个字的拼音首字母、英文单词或者数字等组成所需的字符串 private string GetChineseSpell(string strText) { string myStr = ""; //把传进来的字符串用空格分隔 string[] arr = strText.Split(' '); //判断得到数组arr的长度,如果长度是1 就直接提取,如果不是就进入判断 if (arr.Length != 1) { //根据arr[j]的长度循环 for (int j = 0; j < arr.Length; j++) { //定义变量下面取数字用 int m = 0; bool falg = false; //判读是否为字母或者数字 foreach (char var in arr[j].ToString()) { //判断为字母 if (var >= 'A' && var <= 'Z' || var >= 'a' && var <= 'z') { falg = true; m++; } //判读为数字 if (char.IsDigit(var)) { m = -1; } } //如果m==arr[j].Length 证明都为字母 if (m == arr[j].Length) { myStr += getSpell(arr[j].ToString().Substring(0, 1)); } //如果m==-1 证明为数字或者有数字出现 else if (m == -1) { for (int n = 0; n < arr[j].Length; n++) { myStr += getSpell(arr[j].ToString().Substring(n, 1)); } } //其他,例如数字和字母连在一起等 else { int len = arr[j].ToString().Length; for (int i = 0; i < len; i++) { myStr += getSpell(arr[j].ToString().Substring(i, 1)); } } } } else { int len = strText.Length; for (int i = 0; i < len; i++) { myStr += getSpell(strText.Substring(i, 1)); } } return myStr; } //用来获得一个字的拼音首字母 private string getSpell(string cnChar) { //将汉字转化为ASNI码,二进制序列 byte[] arrCN = Encoding.Default.GetBytes(cnChar); 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) { return Encoding.Default.GetString(new byte[] { (byte)(65 + i) }); } } return " "; } else { return cnChar.Substring(0, 1).ToUpper().ToString(); } }
调用方法:
protected void btnClick_Click(object sender, EventArgs e) { string strText = GetChineseSpell(this.txtFirst.Text.Trim().ToString()); this.txtEnd.Text = strText.ToString(); }
相关文章推荐
- [C#] C#下提取汉字首字的拼音首字母并兼容英文与数字
- 字符串提取数字/汉字/英文字母
- C#下提取汉字首字的拼音首字母并兼容英文与数字
- php 字符串拼音首字母(支持数字,英文,常用汉字)
- 通过GBK编码提取中文汉字的拼音首字母
- js正则表达式限制文本框只能输入数字,小数点,英文字母,汉字等各类代码
- 用正则表达式限制文本框只能输入数字,小数点,英文字母,汉字等
- 输入限制,例如:汉字 英文字母 数字 下划线组成,3-20位
- 汉字提取拼音首字母修正
- 由数字、26个英文字母、下划线或汉字的正则表达式
- 提取汉字拼音首字母(Java版)
- sql server 提取汉字/数字/字母的方法
- android 汉字,拼音和英文返回大写首字母
- PHP正则提取啊汉字字母数字下划线的方法以及常用正则表达式
- php---------正则判断字符串中是否由汉字 数字 英文字母组成
- C# 使用微软的Visual Studio International Pack 类库提取汉字拼音首字母
- java 获取汉字串拼音首字母,英文字符不变 工具类
- 用正则表达式限制文本框只能输入数字,小数点,英文字母,汉字等各类代码
- C# 使用微软的Visual Studio International Pack 类库提取汉字拼音首字母
- C# 使用微软的Visual Studio International Pack 类库提取汉字拼音首字母 转