




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C#中用Split计算英文字符串中单词个数总结作者:蒋固金在C#中,可以用Split以指定的字符分割一段字符串,返回分割后的字符串数组,要想通过该方法计算一段英文字符串中有多少个单词,应该怎样计算呢?以字符串:“My name is JiangGujin,I come from China”为例,很显然在这个字符串中含有8个单词。新建一个控制台应用程序,项目名为Test。在英文字符串中,单词与单词之间可以用 , , ., ?, !, :分开,在主类中编写代码,代码如下:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Test class Program static void Main(string args) string text = My name is JiangGujin,I come from China; string str = text.Split( , , ., ?, !, :); Console.WriteLine(单词个数为:0,str.Length); 运行结果:得到单词的个数为8是正确的,但是每篇文章最后都要有标点符号,当我们把标点符号加上再运行一下,部分代码如下:string text = My name is JiangGujin,I come from China.;运行结果:这样就变成了9个,很明显的是错误的,为什么会出现这种情况,我们可以遍历这个字符串分割后返回的字符串数组,看看有什么不同。第一种情况:结尾无标点符号,部分代码如下:string text = My name is JiangGujin,I come from China;string str = text.Split( , , ., ?, !, :);foreach (string st in str) Console.WriteLine(st);运行结果:第二种情况:结尾有标点符号,部分代码如下:string text = My name is JiangGujin,I come from China.;string str = text.Split( , , ., ?, !, :);foreach (string st in str) Console.WriteLine(st);运行结果:比较运行结果,第二次比第一次多了一行,所以第二次结果为9.为了解决这个问题,我们可以简单的判断字符串的结尾有无标点符号,部分代码如下:string text = My name is JiangGujin,I come from China;string str = text.Split( , , ., ?, !, :);if (char.IsLetter(texttext.Length - 1) Console.WriteLine(单词个数为:0, str.Length);else Console.WriteLine(单词个数为:0, str.Length - 1);运行结果:此结果是正确的,但随之而来的又有一个问题,例如当我们在输入一段字符串的时候,结尾有可能会出现标点符号后又多空了一格,或在字符串内部连续几个空格等情况都会造成计数的错误,例如当我们把字符串的结尾处加上两个句号时,运行结果就会出错。部分代码:string text = My name is JiangGujin,I come from China.;运行结果:造成这种现象的原因是当Split在以指定字符拆分字符串时,会把最后的空字符串也返回到子字符串数组中,这样就造成了返回的结果比实际值多,为了解决这个问题,我们可以遍历返回的字符串数组,用计数器的形式累加,如果出现空字符串则不计入总数,部分代码如下:int count = 0;string text = My name is JiangGujin,I come from China;string str = text.Split( , , ., ?, !, :);foreach (string s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 摩托机车基本知识培训课件
- 摄影机器基础知识培训课件
- 摄影师基本知识培训内容课件
- 塑钢窗技术试题及答案
- 2025餐馆转让经营合同示例
- 2025年高二【数学(人教A版)】两条直线的交点坐标-学习任务单
- 公司财务知识培训宣传稿课件
- 大数据行业编程面试题及答案解析
- 2025终止房屋租赁合同通知模板
- 2025茶叶销售合同范文
- 透水砖改沥青施工方案
- 南京科远KD200变频器使用手册
- 副校长申请书
- 一飞再飞(2024年贵州中考语文试卷记叙文阅读试题)
- 应急通信网络建设方案
- 八段锦考试题及答案
- DB11-T 806-2022 地面辐射供暖技术规范
- 纯英文初三数学试卷
- 压缩空气流量及管径计算
- 起重吊装作业安全培训题库
- 铝合金技术服务协议
评论
0/150
提交评论