




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,第8章 字符串,使用和操作字符串是编程中的常见内容。在C中,可以使用两种类型的字符串,一种是String类的实例,另一种是StringBuilder类的实例;前者是不可更改的字符串,后者是可更改的字符串;这两种类型的字符串可以相互转换。String类型的字符串比StringBuilder类型的字符串使用起来更方便,但当在程序中需要对字符串进行大量的修改时,一般应使用StringBuilder类型的字符串以提高程序的性能。 本章主要介绍怎样在C#程序中使用和操作字符串,重点介绍String类和StringBuilder类提供的常用成员的作用,以及怎样使用这些常用成员操作字符串,另外,还介绍了怎样格式化字符串。,2,本章学习要点,理解String类型字符串和StringBuilder类型字符串的异同 学会创建和使用String类型的字符串实例 了解String类的属性和索引器 能够使用String类的常见方法操作字符串 学会创建StringBuilder类型的字符串实例 能够在StringBuilder类型的字符串和String类型的字符串之间进行相互转换 能够使用StringBuilder类的常见方法操作字符串 了解怎样格式化字符串,3,8.1 字符串基础,字符串是由被当作一个整体处理的一系列字符组成的。一个字符串中包含的字符可以是大、小写英文字母、汉字、数字、以及*、#等特殊符号。首先了解一下字符。 字符是组成C#程序代码的基本元素。源程序通常由字符组成,把一些字符按照一定意义组合,然后由编译器翻译成机器指令就可以完成指定的任务。除了普通字符之外,在程序中还包含着字符常量。字符常量可由一个整数值来表示,该值被称作字符码。例如,换行符n可用整数122来表示。字符常量是建立在Unicode字符集基础之上的,Unicode字符集是一个通用的字符集,其中包含的符号和字母数量超过了ASCII字符集。 C#当中的字符串分为两种:一种是不可变字符串,另一种是可变字符串。其中,不可变字符串是System命名空间中String类的对象(在本书前面的许多程序中用到的“string”关键字是String类的别名,也即,在C#程序中,可以在需要使用String的地方改用string替换),在本书前面的程序示例中用到的字符串大多都是这种类型的字符串;可变字符串是System.Text命名空间中StringBuilder类的对象。,8.2 String类,C#中的String类类似于C+中的string类型,但String类提供了更多的功能,有很多比较、读取和搜索String对象的内容的方法。虽然String类的功能很强,但String类型的字符串仍是不可改变的,也就是说,一旦创建了String类的对象实例,就不能够再修改该实例了。表面上看来能够修改字符串的所有方法其实都不能够修改已创建的String类对象实例,它们实际上是在原有String类对象实例的基础上创建了新的String类对象实例。当需要对字符串进行大量的修改时,可以使用StringBuilder类,关于该类的用法将在8.3节进行介绍。 String类也是sealed类,也就是说,String类不能被继承。由于不可改变并且是sealed类使得String类更加高效。下面将介绍String类的成员,并结合程序示例介绍怎样使用它们。,4,8.2.5 提取字符串,有时,需要从一个字符串中提取子串,使用String类的Substring方法可以解决这个问题。该方法具有两个重载版本,分别是: String Substring(int) 该版本可从参数指定的位置开始提取子串,并返回这个子串。 String Substring(int,int) 该版本可从第一个参数指定的位置开始提取子串,子串包含的字符个数由第二个参数指定,然后返回这个子串。,5,8.3 StringBuilder类,如前文所述,String类型的字符串是不能修改的,如果要向String类型的字符串后面追加一个字符串,那么结果将是,用原有的字符串和要追加的字符串创建一个新的字符串,由于String类型的字符串的不可改变性,当程序中需要执行大量的字符串操作时,字符串的不可改变性将会导致程序的性能下降;但在C#中,还可以使用StringBuilder类型的字符串,它们是可以修改的,当需要完成大量的工作来修改字符串时,使用StringBuilder类型的字符串是最好的选择。,6,8.3.2 使用AppendFormat,除了能够将一些值追加到当前字符串之外,使用StringBuilder类的AppendFormat方法还能够追加格式化的字符串,有了AppendFormat方法,就不必再使用string类的Format方法,因而也就无需再创建多余的字符串了。 AppendFormat方法有4个重载形式,分别为: AppendFormat(string,Object) AppendFormat(string,Object,Object) AppendFormat(string,Object,Object,Object) AppendFormat(IFormatProvider,string,Object),7,8.3.3 插入字符串,字符串的插入是StringBuilder类提供的另一个常用方法。插入字符串所用的Insert方法具有多个重载形式,其中的几种为: Insert(int,bool) Insert(int,char) Insert(int,char) Insert(int,Object) Insert(int,string,countInt) Insert(int,char,beginInt,numberInt),8,8.3.4 替换字符串,有时,会遇到这样的情况:在模板的基础上生成字符串,并用一些值来替换模板中的标记或子字符串。事实上,VS.NET也是这样工作的。每个项目都是在一个模板文件的基础上创建的,新创建的源代码文件也是从一个模板生成的,然后根据项目类型、项目名称以及其他选项来替换文件中的各种标记。使用StringBuilder类的Replace方法也可以实现同样的效果,它能将字符串中所有指定的字符或字符串替换为其他指定的字符或字符串。该方法具有下列重载形式: StringBuilder Replace(char oldChar,char newChar) StringBuilder Replace(char oldChar,char newChar, int startIndex,int count) StringBuilder Replace(string oldValue,string newValue) StringBuilder Replace(string oldValue,string newValue,int startIndex,int count),9,8.4 格式化字符串,当使用Console.WriteLine(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 体育赛事场地设施保险行业深度调研及发展项目商业计划书
- 2025年城市污水处理厂智能化改造对城市排水系统环境效益的影响评估报告
- 云南省保山市腾冲市第八中学2024-2025学年高一下学期5月期中考试历史试卷(含答案)
- 2025年食品用类似原料项目可行性分析报告
- 北师大版二年级下册第9-10单元达标测试语文试卷
- 莎车县静安路与沪新西路十字东南角部分土地第一阶段土壤污染状况调查报告
- 废旧轮胎处理流程的创新方法
- 晕厥康复指导
- 线上线下结合的八年级体育教育计划
- 中学教师企业实践心得体会
- 微信视频号代运营合同范本
- 【基于近五年数据的鸿星尔克财务报表分析15000字】
- CNN 卷积神经网络介绍
- 北大强基试题
- 把未来点亮歌词打印版
- 船体振动知到章节答案智慧树2023年华中科技大学
- 四级下册英语期末测试卷深圳版
- 健康安全危险源识别、风险评估和风险控制表
- 摩托车不过户免责协议(2篇)
- GB 2715-2016食品安全国家标准粮食
- 第25课《活板》复习课件-部编版语文七年级下册
评论
0/150
提交评论