// 英文单词:根据正则获取 private static int GetWordCountByRegular( string str) { // 统计英文单词个数 Regex re = new Regex( @" \b\w+\b "); MatchCollection ma = re.Matches(str); return ma.Count; } // 数字 public static int GetNumberCount( string str) { int count = 0; for ( int i = 0; i < str.Length; i++) { if (str[i] != ' \0 ') { if (str[i] >= ' 0 ' && str[i] <= ' 9 ') { count++; } } } return count; } // 字母 public static int GetLetterCount( string str) { int count = 0; for ( int i = 0; i < str.Length; i++) { if (str[i] != ' \0 ') { if (((str[i] >= ' a ' && str[i] <= ' z ')) || ((str[i] >= ' A ' && str[i] <= ' Z '))) { count++; } } } return count; } // 中文字符 public static int GetChineseCount(String str) { // 中文个数=字节数-字符数 return Encoding.GetEncoding( " gb2312 ").GetBytes(str).Length - str.Length; } // 中文字符:根据Unicode编码范围 private static int GetChineseCountByUnicode( string str) { int count = 0; for ( int i = 0; i < str.Length; i++) { if (str[i] >= 0X4e00 && str[i] <= 0X9fa5) { count++; } } return count; } // 中文字符:根据正则获取 private static int GetChineseCountByRegular(String str) { Regex re = new Regex( " [\u4e00-\u9fa5] "); MatchCollection ma = re.Matches(str); return ma.Count; } // 空格 public static int GetSpaceCount(String str) { int count = 0; foreach ( char ch in str) { if (ch == 32) // ASCII编码:32为空格符.当然你也可以判断空字符:ch==' ' { count++; } } return count; } // 标点符号 public static int GetSymbolCount(String str) { // ASCII编码中的符号范围:32-47、58-64、91-96、123-126 int count = 0; foreach ( char ch in str) { if ((ch >= 32 && ch <= 47) || (ch >= 58 && ch <= 64) || (ch >= 91 && ch <= 96) || (ch >= 123 && ch <= 126)) { count++; } } return count; } // 其他字符 public static int GetOtherCount(String str) { return str.Length - GetNumberCount(str) - GetLetterCount(str) - GetChineseCount(str)
- GetSpaceCount(str) - GetSymbolCount(str); } // 字节 public static int GetByteCount(String str) { return Encoding.Default.GetBytes(str).Length; }