C#中用Split计算英文字符串中单词个数

C#中用Split计算英文字符串中单词个数

ID:40524557

大小:422.50 KB

页数:6页

时间:2019-08-04

C#中用Split计算英文字符串中单词个数_第1页
C#中用Split计算英文字符串中单词个数_第2页
C#中用Split计算英文字符串中单词个数_第3页
C#中用Split计算英文字符串中单词个数_第4页
C#中用Split计算英文字符串中单词个数_第5页
资源描述:

《C#中用Split计算英文字符串中单词个数》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C#中用Split计算英文字符串中单词个数总结作者:蒋固金在C#中,可以用Split以指定的字符分割一段字符串,返回分割后的字符串数组,要想通过该方法计算一段英文字符串中有多少个单词,应该怎样计算呢?以字符串:“MynameisJiangGujin,IcomefromChina”为例,很显然在这个字符串中含有8个单词。新建一个控制台应用程序,项目名为Test。在英文字符串中,单词与单词之间可以用'',',','.','?','!',':'分开,在主类中编写代码,代码如下:usingSystem;usingSystem.

2、Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceTest{classProgram{staticvoidMain(string[]args){stringtext="MynameisJiangGujin,IcomefromChina";string[]str=text.Split('',',','.','?','!',':');Console.WriteLine("单词个数为:{0}",str.Length);}}}运行结果:得到单词的个数为

3、8是正确的,但是每篇文章最后都要有标点符号,当我们把标点符号加上再运行一下,部分代码如下:stringtext="MynameisJiangGujin,IcomefromChina.";运行结果:这样就变成了9个,很明显的是错误的,为什么会出现这种情况,我们可以遍历这个字符串分割后返回的字符串数组,看看有什么不同。第一种情况:结尾无标点符号,部分代码如下:stringtext="MynameisJiangGujin,IcomefromChina";string[]str=text.Split('',',','.','?

4、','!',':');foreach(stringstinstr){Console.WriteLine(st);}运行结果:第二种情况:结尾有标点符号,部分代码如下:stringtext="MynameisJiangGujin,IcomefromChina.";string[]str=text.Split('',',','.','?','!',':');foreach(stringstinstr){Console.WriteLine(st);}运行结果:比较运行结果,第二次比第一次多了一行,所以第二次结果为9.为了解决

5、这个问题,我们可以简单的判断字符串的结尾有无标点符号,部分代码如下:stringtext="MynameisJiangGujin,IcomefromChina";string[]str=text.Split('',',','.','?','!',':');if(char.IsLetter(text[text.Length-1])){Console.WriteLine("单词个数为:{0}",str.Length);}else{Console.WriteLine("单词个数为:{0}",str.Length-1);}运行

6、结果:此结果是正确的,但随之而来的又有一个问题,例如当我们在输入一段字符串的时候,结尾有可能会出现标点符号后又多空了一格,或在字符串内部连续几个空格等情况都会造成计数的错误,例如当我们把字符串的结尾处加上两个句号时,运行结果就会出错。部分代码:stringtext="MynameisJiangGujin,IcomefromChina..";运行结果:造成这种现象的原因是当Split在以指定字符拆分字符串时,会把最后的空字符串也返回到子字符串数组中,这样就造成了返回的结果比实际值多,为了解决这个问题,我们可以遍历返回的字

7、符串数组,用计数器的形式累加,如果出现空字符串则不计入总数,部分代码如下:intcount=0;stringtext="MynameisJiangGujin,IcomefromChina";string[]str=text.Split('',',','.','?','!',':');foreach(stringstinstr)if(!st.Equals(""))count++;Console.WriteLine("单词个数为:{0}",count);运行结果:以上内容皆为个人思考与感悟,仅供参考!

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。