一段文本,如何统计汉字!! 一段文本,如何统计汉字!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 // 下例输出结果为 3 public static void Main(){ string str = "abc中国人"; int counter = ChineseLetterCount(str); Console.WriteLine(counter);}public static int ChineseLetterCount(string strText){ byte[] byts = System.Text.Encoding.GetEncoding("gb2312").GetBytes(strText); return byts.Length - strText.Length;} public class Class1 { static void Main() { string s = "看a定界1"; Regex regex = new Regex("[\u4e00-\u9fa5]"); MatchCollection ms = regex.Matches(s); Console.WriteLine(ms.Count); } } leonchenjian(小黑, 不知不觉大学只剩一年)的方法不错,很巧妙!lordych() 的方法有点危险,有空去查查Unicode标准,现在流行的u4e00-\u9fa5(9FFF)方法是不全的,CJK有部分字符没有在这个范围内。 赞楼上的方法。再来一种 string inputStr="哈哈哈test"; Char[] myChar=inputStr.ToCharArray();//转换为char数组 int m=0;//汉字个数 foreach(char i in myChar) { if(i>0x7f) m++; //如果是汉字则m++ } Console.WriteLine(m.ToString()); leonchenjian(小黑, 不知不觉大学只剩一年)的方法我觉得比我的差,若有韩文假名之类的能等到正确结果吗? shrinerain(圣影雨):不好意思,你的方法也不敢赞同。首先,你的方法判断出的汉字数量会是实际数量的一倍(你忘记了汉字双字节了),其次直接判断字符值大于128也不能保证就是汉字。 给个Unicode的分布定义吧:不好意思,从程序的注视段直接提出来的,凑合看吧!//0000-1FFF General Scripts//2000-2DFF Symbols//2E00-33FF CJK Fhonetics and Symbols//3400-4DB5 CJK Extension A//4E00-9FFF CJK Ideographs//A000-A4CF Yi Syllables//AC00-D743 Hangul Syllables//D800-DFFF Surrogates//E000-D8FF Private Use//F900-FFFD Compatibility and Specials 在问一个问题: 一个字符占几个像素,一个汉字又占几个像素!!我写的程序是根据读取的数据来动态生成Label的高,然后显示它 to xyr:是不是一倍你运行试试就知道了,我敢保证你没有真正运行过我得程序。真正精确统计我不知道什么办法,繁体,简体,日文汉字怎么同时都统计??? 我写的程序是根据读取的数据来动态生成Label的高,然后显示它--------------------------------------------------------Label.AutoSize = true; 就可以了。另外,Label.PreferredWidth 和 Label.PreferredHeight 属性可以得到宽度和高度。 字符占用像素好像有个专门的类方法,具体方法名记不清楚了--------------------------------------------------------是 Graphics.MeasureString(string text, Font font) 方法。 回复人: wuyi8808(air|skyiv.com) Label.AutoSize = true; 就可以了。另外,Label.PreferredWidth 和 Label.PreferredHeight 属性可以得到宽度和高度。--------------------------------------------------------可是只想高度可以自动,而宽固定呀,那要怎么写呢??? to k011003179(大海) 真正精确统计我还没见到什么软件可以。你用word,emeditor或其他文字软件打开同一篇文字,点字数统计,会发现基本上所有软件统计的字数都各不相同。 str.replace(/[\u4e00-\u9fa5]/g,"**").length就是str的汉字个数 string inputStr="哈哈哈test"; Char[] myChar=inputStr.ToCharArray();//转换为char数组 int m=0;//汉字个数 foreach(char i in myChar) { if(i>'一' && i<'龤') m++; //如果是汉字则m++ } Console.WriteLine(m.ToString()); 大家好,我想走软见开发这条路,不知道走 c/c++,C#和JAVA那条路好,请高手指点迷津。我是新手,请求帮助QQ-86443895 我以前用VB.NET写过一个小程序,用来统计一段文本中出现了哪些汉字,每个汉字出现了多少次,你需要的话,把邮箱给我,我把程序发给你 回复: ndhjx(你的好记性) c# 控制台编写扫雷游戏 C#版XML解析器 access如何连水晶报表呀, 急!!!! 这代码 错在那里呢 帮忙看看 关于SQL2000的 查询语句. 还是c#中的结构问题 大神 这个正则如何修改才能去掉这些多余的标签 大家好,问一个static的问题,ConnOpen()加static 为什么不对啊急急 新建线程中打开悬浮窗体,无法显示在最顶层(跨线程关闭窗体) frame的问题,大侠们帮忙! 请教大侠有关WebService不能在另一台机器上引用的问题? 窗体最大化问题
public static void Main()
{
string str = "abc中国人";
int counter = ChineseLetterCount(str);
Console.WriteLine(counter);
}public static int ChineseLetterCount(string strText)
{
byte[] byts = System.Text.Encoding.GetEncoding("gb2312").GetBytes(strText); return byts.Length - strText.Length;
}
{
static void Main()
{
string s = "看a定界1";
Regex regex = new Regex("[\u4e00-\u9fa5]");
MatchCollection ms = regex.Matches(s);
Console.WriteLine(ms.Count);
}
}
再来一种
string inputStr="哈哈哈test";
Char[] myChar=inputStr.ToCharArray();//转换为char数组
int m=0;//汉字个数
foreach(char i in myChar)
{
if(i>0x7f)
m++; //如果是汉字则m++
}
Console.WriteLine(m.ToString());
能等到正确结果吗?
//2000-2DFF Symbols
//2E00-33FF CJK Fhonetics and Symbols
//3400-4DB5 CJK Extension A
//4E00-9FFF CJK Ideographs
//A000-A4CF Yi Syllables
//AC00-D743 Hangul Syllables
//D800-DFFF Surrogates
//E000-D8FF Private Use
//F900-FFFD Compatibility and Specials
是不是一倍你运行试试就知道了,我敢保证你没有真正运行过我得程序。真正精确统计我不知道什么办法,繁体,简体,日文汉字怎么同时都统计???
可是只想高度可以自动,而宽固定呀,那要怎么写呢???
就是str的汉字个数
Char[] myChar=inputStr.ToCharArray();//转换为char数组
int m=0;//汉字个数
foreach(char i in myChar)
{
if(i>'一' && i<'龤')
m++; //如果是汉字则m++
}
Console.WriteLine(m.ToString());
我是新手,请求帮助QQ-86443895