C字符串处理实用_第1页
C字符串处理实用_第2页
C字符串处理实用_第3页
C字符串处理实用_第4页
C字符串处理实用_第5页
已阅读5页,还剩12页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

会计学1C字符串处理实用3.1.1声明字符串变量字符串变量是引用类型的变量,声明一个字符串,即创建了对内存里某个空间的引用。字符串是使用引号声明的,如下例所示:stringmyStr=“thisismyfirststring”;该语句声明了一个string类型的变量myStr,该变量被初始化成字符序列“thisismyfirststring”。假设内存是一个储物间,内存里的存储单元可以看成是储物间里的储物柜。声明一个字符串变量实际上是在变量名对应的储物柜里存储了实际存放字符串数据的地址信息。假设有下面代码声明两个不同数据类型的变量:stringmyStr=“thisismyfirststring”;inta=100;上述声明的两个变量在内存里的存储形式如图3.1所示。第1页/共17页3.1.2修改字符串内容【本节示例参考:\源代码\chapter3\3.1.2\ModifyString】字符串定义好以后,可以在使用过程中修改其值。这一点不难理解,因为只要是变量,在程序运行过程中其值都可以改变,这也是变量的一个重要特征。比如下面的例子:stringstr3=“thisisfirststring”;Console.WriteLine(“beforemodify:”+str3);str3=“thisissecondstring”;//改变字符串变量的值Console.WriteLine(“aftermodify:”+str3);程序运行的输出结果是:beforemodify:thisisfirststringaftermodify:thisissecondstring第2页/共17页3.1.3改变大小写【本节示例参考:\源代码\chapter3\3.1.3\StringExample】在对字符串进行处理时,有些时候需要修改字母的大小写。比如一个在线考试系统,要考查同学们背单词的情况,假设让同学输入“计算机科学”,有人习惯写成“ComputerScience”,也可以小写成“computerscience”。那怎么来判断用户输入到底是不是正确的呢?这时可以将输入的字符全部统一成大写或是小写,然后和标准答案进行对比。第3页/共17页3.1.4联接多个字符串连接字符串也是一个经常要用到的字符串的基本操作。对字符串的连接实际在之前的操作就已经遇到过了。在之前的示例里有这样的代码:Console.WriteLine(“beforemodify:”+string1);在这里通过对运算符的重载实现了字符串的连接。用运算符“+”就能将两个字符串连接起来。例如下面的语句:stringstr1=“This”;//定义字符串变量stringstr2=“is”;stringstr3=“C#”;stringstr3=str1+str2+str3;//连接字符串变量最后str3的值为字符串“ThisisC#”。在前面的示例中,将str1、str2和str3的内容连接起来以构成一个字符串时,包含“This”、“is”和“C#”的三个字符串均保持不变。“=”赋值运算符会创建一个包含组合内容的新字符串。结果是str3现在引用一个完全不同的字符串。包含“C#”的字符串仍然存在,但连接str3后将不再被引用。第4页/共17页3.1.5使用Split方法分析字符串【本节示例参考:\源代码\chapter3\3.1.5\SplitString】String.Split()方法返回包含此实例中的子字符串的字符串数组。所谓字符串数组,实际上就是每个元素都是一个字符串的数组。子串的提取是由指定字符串或Unicode字符元素作为的分隔数组。比如要将字符串“Stringprocessmethods”按空格作为分隔符,提取出的字符串数组如图3.5所示。第5页/共17页3.1.6使用字符串方法搜索字符串【本节示例参考:\源代码\chapter3\3.1.5\SearchString】string类型为搜索字符串的内容提供了许多有用的方法。代码3-4示例使用IndexOf()、LastIndexOf()、StartsWith()和EndsWith()方法来对字符串进行处理。StartsWith()、EndsWith()方法用于判断某个字符串是否以指定的字符或字符串开始或结束,返回的是布尔值。第6页/共17页3.1.7使用正则表达式搜索字符串11【本节示例参考:\源代码\chapter3\3.1.6\SearchStringWithReg】正则表达式语言是一种专门用于字符串处理的语言。一个正则表达式,就是用某种模式去匹配一类字符串的一个公式。正则表达式定义的搜索模式就像是一个模板,告诉程序你想要处理什么样的字符串,符合这些规定的字符串就能被该正则表达式识别。最初正则表达式是在UNIX环境中开发的,Microsoft把它移植到Windows中。System.Text.RegularExpressions命名空间中许多.NET类都支持正则表达式,实际上,在ASP.NET中,验证控件就是使用正则表达式。可以用Regex类搜索字符串,这些搜索可以涵盖从非常简单到全面使用正则表达式的复杂范围。第7页/共17页3.1.8可变字符串类StringBuilder使用StringBuilder类来构造一个字符串时,通常会分配比需要存储的数据更多的内存空间,开发人员也可以显式指定StringBuilder要分配多少内存。如果没有显式指定,内存空间在默认情况下就是根据StringBuilder初始化时的字符串长度来确定。例如,如果使用StringBuilder对象构造一个字符串,可以用如下代码来实现:StringBuilderstrBuilder=newSttringBuilder(“HelloC#”,100);执行上面的代码,首先创建一个StringBuilder对象,如图3.9所示。第8页/共17页3.2用Console类处理控制台程序在前面,我们就遇到过这样的程序:Console.Write()Console.ReadLine()这些都是Console类提供的方法,控制台是一个操作系统窗口,用户可在其中通过计算机键盘输入文本,并从计算机终端读取文本输出。在C#中通过Console类来实现控制台的输入输出。第9页/共17页3.2.1向控制台输出【本节示例参考:\源代码\chapter3\3.2.1\FormatString】在显示一个变量的值时,常常需要指定它的格式,此时,通常会调用Console.WriteLine()方法或Console.Write()方法,将指定的数据写入标准输出流,这两个方法的区别是:Write()方法输出指定字符串后不换行,而WriteLine()方法要换行。看下面的示例代码:stringname="kenrome";//定义字符串变量Console.Write("hello"+name+"\t");//字符串连接Console.WriteLine("Yournameis:{0}",name);//格式化输出字符串第10页/共17页3.2.2从控制台输入!!!要从控制台窗口中读取一行文本,可以用Console.ReadLine()方法,该方法从控制台窗口中读取一个标准输入流(在用户按下回车键时停止),并返回输入的字符串。如果没有更多的可用行,则为空引用。说明:行被定义为后跟回车符(十六进制0x000d)、换行符(十六进制0x000a)或Environment.NewLine属性值的字符序列。返回的字符串不包含终止字符。例如,下面的代码允许用户输入一行文本,并将用户输入的文本显示:strings=Console.ReadLine();Console.WriteLine(s);第11页/共17页3.3C#中的注释!!!注释是一段程序不可缺少的部分,注释不仅可以让读者看明白代码是什么意思,而且在将来的项目易手后,还能帮助别人了解这些代码的意义。同时,可以将格式良好的注释汇总形成文档,方便理解程序。第12页/共17页3.3.1良好的注释习惯!!注释是程序员和程序读者通信的重要手段,正确的注释非常有助于对程序的理解。没有注释的程序不是一个好程序,但过多的注释也会让人看着心烦。所以,从一开始就得培养怎样写好程序的注释,一般来说至少需要在下面所述这些地方写上注释:加在说明性文件、源文件首部和函数头部的注释。(用以说明本程序或程序段的主要功能)加在各分支点处的注释。对各变量、常量的功能、范围、默认条件等所加的注释。对使用的逻辑的注释。注释要写得准确、易懂、简洁,不可有二义性!代码改变时,注释应与代码保持一致!以上只是对注释的用法做了一些简单的描述。如果读者想有进一步的了解,可以在网上查找华为编程规范,在里面对注释有非常详尽的描述和要求,当然,不同的公司可能会有不同的要求,但关键的部分还都是一样的。第13页/共17页3.3.2如何使用注释【本节示例参考:\源代码\chapter3\3.3.2\CommentTest】C#使用了C风格注释方式,单行注释用//…,多行注释用/*…*/,如下所示://thisisasingle-linecomment//单行注释/*thisismultiplelines//多行注释comment*/单行注释行中注释符“//”后的所有内容,都会被编译器忽略,多行注释符/*和*/之间的内容,会被编译器忽略。理论上讲,多行注释可以出现在代码的任何位置,如下面示例:DateTimethisDate=/*获取当前日期*/DateTime.Now;可以将多行注释写在一个语句中,编译的时候也不会出错。不过不建议使用这种写法,这样写会降低程序的可读性。在C#里,除了上述两种注释外,还有一个功能非常好的注释,XML文档注释。XML文档注释可以根据特定的注释自动创建XML格式的说明文档,并且VisualStudio2008可以自动识别这些注释,在调用某个方法时,智能感知会给出自动提示,如图3.13所示。这些注释都是单行注释,以3个斜杠(///)开头,在这些注释中,可以把包含类型和类型成员的文档说明的XML标识符放在代码中。第14页/共17页3.4小结!!学完本章后,读者将了解以下内容。(1)字符串是引用类型数据。声明一个字符串实际上是声明了一个在内存中的引用。对字符串修改的时候,实际上是把原来的字符串丢弃,再重新创建一个字符串。原来丢弃掉的字符串会被系统自动回收。(2)当对字符串的修改操作频繁的时候,应该考虑用StringBuilder类。(3)String类提供了很多方法进行字符串的处理,包括字符串的拆分、连接、查找等。(4)可以使用功能更强大的正则表达式进行字符串的搜索。(5)用System.Console.Write()方法向控制台输出数据的时候,涉及到对字符串的格式化。应该了解常用的格式说明符。用System.Console.Read()方法从控制台输入的数据是string类型的,应该根据实际需要进行数据类型转换。(6)从开始学习一门语言开始,就要养成良好的注释习惯。好的注释让你的程序更优美,更易于理解。第15页/共17页本章习题!!一、选择题1.在C#中,表示一个字符串的变量应使用以下哪条语句定义()A.CS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论