已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 淮南会考数学试卷及答案
- 2026福建省面向华中师范大学选调生选拔工作备考题库及答案详解(名师系列)
- 2025河北邢台市沙河市招聘社区工作者29人备考题库附答案详解(巩固)
- 2025年邮储综合常识题库及答案
- 天佑学院笔试题目及答案
- 2025北京房山区区直部门和乡镇(街道)全日制临聘人员招聘37人备考题库完整参考答案详解
- 淘宝客服考试题型及答案
- 泰安工会考试题及答案
- 烟草类会计大题题库及答案
- 宋代太学考试题目及答案
- 兴国县2025年招聘城市社区专职网格员【23人】备考题库带答案解析
- 护士年终总结总结
- 房屋中介佣金协议书
- 2026届新高考政治热点冲刺复习 主要的国际组织
- 生物制药研发新趋势
- 终末期患者营养支持方案
- 高标准农田灌溉与排水管网布局方案
- 河源市龙川县事业单位考试题目及答案解析
- 动静脉内瘘球囊扩张术课件
- 煤油灯的课件
- 2025年广西普法考试(一)及答案
评论
0/150
提交评论