C#判断字符是否为中文方法总结
2014-01-15 00:58
447 查看
字符存储结构实际存储的就是字节代码,汉字的unicode编码之后,使用unicode编码存储之后可以对每个字节的字节码进行比较,从而可以按照编码的结构来判断是否是汉字,特殊字符。判断是否是汉字或者是其他某种文字,都是按照这个原理实现。对于C#语言来说,判断方法总结起来有如下三种。
补充:C#中的进制转换
十进制转换为其他进制:使用Convert.ToString(十进制数字,2/8/16),这样转换的结果是一个其他进制对应的字符串,第二个参数还可以是IFormatProvider类型的参数用于指定转换的特定格式。
二、八、十六进制转换为十进制:使用Convert.ToInt32(其他进制字符串,2/8/16),第一个参数是第二个参数对应的进制的字符串。转换结果为十进制的数字。
1.直接使用Unicode编码比较
中文汉字的unicode编码范围为4e00到9fee,代码如下:string text = "是不是汉字abc"; char[] textArr = text.ToCharArray(); for (int i = 0; i < textArr.Length; i++) { if (textArr[i] >= 0x4e00 && textArr[i] <= 0x9fbb) { Console.Write(textArr[i] + "\t是汉字,unicode编码为:"); Console.WriteLine(Convert.ToString(text[i], 16)); } else { Console.WriteLine(textArr[i] + "\t不是汉字"); } }
2.使用正则表达式匹配
与前者同样的原理,使用的是对每一个字符进行正则匹配,表达式如下@"[\u4e00-\u9fbb]"匹配成功则为汉字,这是利用了正则表达式引擎自带的对unicode字符编码的支持。
3.使用ASCII
由于ASCII编码只使用了一个字节的前七位,而对于使用了第八位的编码字节则都是非ASCII编码的字符,因此可以据此判断是否是汉字等非ASCII编码的特殊字符。string text = "是不是汉字abc"; for (int i = 0; i < text.Length; i++) { if ((short)text[i] > 127) { Console.Write(text[i] + "是汉字,ASCII编码:" ); Console.WriteLine( Convert.ToString((short)text[i],16)); } else Console.WriteLine("不是汉字"); }
补充:C#中的进制转换
十进制转换为其他进制:使用Convert.ToString(十进制数字,2/8/16),这样转换的结果是一个其他进制对应的字符串,第二个参数还可以是IFormatProvider类型的参数用于指定转换的特定格式。
二、八、十六进制转换为十进制:使用Convert.ToInt32(其他进制字符串,2/8/16),第一个参数是第二个参数对应的进制的字符串。转换结果为十进制的数字。
相关文章推荐
- c#判断字符是否为中文的三种方法分享(正则表达式判断)
- C#实现判断字符是否为中文
- [转载]C# 判断字符是否中文还是英文
- C#实现判断字符是否为中文
- jquery判断字符串中是否包含特定字符的方法总结
- C#三种判断字符是否为汉字的方法
- php 判断是否有中文字符的两种方法
- C#中判断字符是否为中文
- C#三种判断字符是否为汉字的方法
- C# 判断中文字符的8种方法
- AWK使用总结(5)使用AWK判断是否为中文字符
- C#中判断字符是否为中文
- C#中判断字符是否为中文
- C#中判断字符是否为中文
- C#实现判断字符是否为中文
- C#中使用Char类中的方法对字符进行各种操作,判断是否为字母、数字、标点符号、分隔符或空白。
- 为项目中的URL中文参数,使用的加密类,包含判断字符是否是中文的方法
- C#中判断字符是否为中文
- C#中判断字符串是否中文的方法
- Java判断输入的String是否为中文方法总结