字符串、集合和泛型

上传人:san****019 文档编号:70555097 上传时间:2019-01-17 格式:PPT 页数:52 大小:218.01KB
返回 下载 相关 举报
字符串、集合和泛型_第1页
第1页 / 共52页
字符串、集合和泛型_第2页
第2页 / 共52页
字符串、集合和泛型_第3页
第3页 / 共52页
字符串、集合和泛型_第4页
第4页 / 共52页
字符串、集合和泛型_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《字符串、集合和泛型》由会员分享,可在线阅读,更多相关《字符串、集合和泛型(52页珍藏版)》请在金锄头文库上搜索。

1、1,第五章 字符串、集合和泛型,5.1 字符串 5.2 集合和泛型 5.3 小结,5.1 字符串,5.1.1String类 5.1.2StringBuilder类,5.1 字符串,在C# 语言中,String是 .NET Framework 中System.String的别名,System.String类型表示的是Unicode字符的字符串。,String类,任何应用程序中使用最频繁的类型无疑是System.String类型。一个String类型表示一个恒定不变的字符序列集合。String类型直接继承自Object,这使得它成为一个引用类型。此外,String类还实现了字符串的一些基本操作,如

2、字符串和其他数据类型的转换,字符串的格式化,字符串(字符)大小写的转换,字符串比较,字符串的剪裁和填充,字符串的拆分和连接。下面分类介绍了String类实现这些操作的方法:,String类,1. 字符串分析(Parse) Parse方法把表示 .NET Framework 数字基类型的字符串转换成实际的 .NET Framework 数字基类型。 Parse方法最多能接受3个参数: 要转换的字符串; System.Globalization.NumberStyles枚举中的一个或多个值; NumberFormatInfo类。 因为Parse方法假设所有的字符串输入都是表示十进制的值,所以不能解

3、析非十进制的值。Parse方法同样也不能解析那些表示NaN(非数字)、Single和Double类的PositiveInfinity或NegativeInfinity值的字符串,因为它们都不是真正的数字。,String类,【例5.1】把一个字符串转换成一个int类型的值,对该数值执行递增操作,并显示输出结果。 /Parse:把字符串转换成数字 string sr=“12345“; int a=int.Parse(sr); a+; Response.Write(“parse:“+Convert.ToString(a)+“);,String类,2. 格式化 .NET Framework 提供了许多

4、格式字符串和说明符,可以用它们来格式化从其他对象派生而来的字符串的外观。 在向用户显示基本数据类型的值之前,把它们转换成字符串类型有许多好处:字符串容易显示,而且可以将它们添加到应用程序的对话框和消息框中;也可以使用格式说明符将同一数值以科学计数法格式、货币格式、十六进制格式或其他格式显示出来。,String类,1)何时使用格式字符串 对于应用程序存储信息的格式,当它被应用程序所使用时,可以使用格式说明符。 例如,一个商务应用程序可能在DateTime对象中保存当前的时间和日期,以便在交易结束时进行记录。DateTime对象存储了一些用户没有必要关心的信息,如从创建对象起用了多少毫秒,可以使用

5、格式说明符来显示用户关心的信息,如交易的日期和时间。 另外,还可以动态地修改由格式说明符创建的字符串,来表示当前区域的货币、日期和时间。例如,应用程序可以使用用户当前区域特有的符号来显示日期和时间。,String类,2)使用格式字符串的方法 任何能够创建字符串的方法都可以使用格式字符串,所创建的字符串可以代表 .NET Framework 中的某种数据类型,如Int32、Int64、Single、Double、Enumeration和DateTime等。格式字符串还可以用于Console.WriteLine方法、String.Format方法以及System.IO命名空间中的一些方法。 另外,

6、每个基本数据类型都包含一个ToString方法,这个方法返回一个该数据类型值的字符串表示形式,并可接受一个字符串格式说明符作为参数。可以使用 .NET Framework 中定义的几个格式字符串中的一个来控制上面那些创建的字符串的布局和设计。,String类,3)使用ToString方法 当要把标准的 .NET Framework 数据类型转换成字符串(以其他形式表示该类型)时,ToString方法将非常有用。 如果有一个整数100,想把它表示成货币的形式呈现给用户,使用ToString方法和货币格式字符串(C)就可以很容易地生成字符串$100.00。该数据类型的原始值并不会被转换,只是返回一

7、个代表结果的新字符串。除非将这个新的字符串转换为原来的 .NET 基本数据类型,否则它不能用于计算。而该数据类型的原始值在任何时候都能参与计算。,String类,【例5.2】ToString方法将数值100以货币格式的字符串形式显示在页面窗口中。 /ToString:把framework中的标准数据类型转换成字符串 int i=10; string j=i.ToString(“c“);/c表示货币格式字符串 Response.Write(“格式化“+j+“); DateTime d=new DateTime(2006,9,23,10,20,30);/格式化日期,分别以短日期和长日期的形式显示

8、string t=d.ToString(“d“); Response.Write(“短日期“+t+“); string t1=d.ToString(“f“); Response.Write(“长日期“+t1+“);,String类,3. 改变大小写 String.ToUpper和String.ToLower方法提供了接受区域性参数的重写方法。String.ToUpper方法把字符串中所有字符转换成大写形式,String.ToLower方法是把字符串中所有字符转换成小写形式。 【例5.3】大小写转换实例。 string da=“HelloWorld“; Response.Write(“转换成大写

9、“+da.ToUpper()+“);/大小写转换 Response.Write(“转换成小写“+da.ToLower()+“);,String类,4. 字符串比较 .NET Framework 提供了几个方法来比较字符串的值。表5.1描述了一些比较字符串值的方法。 表5.1 字符串比较,String类,例如,String.Compare方法提供了全面的方法来比较当前字符串对象和另一个字符串对象。可以用这个方法来比较两个字符串或它们的子串。 另外,还提供了考虑或忽略大小写规则和区域性差异的重载方法。 表5.2 字符串比较返回结果,String类,【例5.4】使用Compare方法来判断两个字符串

10、是否相同。 int ii=String.Compare(t,t1);/compare用于比较两个字符串的值,返回一个整型值 Response.Write(“字符串比较“+Convert.ToString(ii)+“); 5. Trim 和Pad 当需要移除或添加字符串首尾的空格时,System.String类提供了剪裁和填充字符串的方法。,String类,1)剪裁 如果将句子解析成独立的单词,可能在单词的首尾都有空格,可以使用System.String类的Trim方法移除该字符串首尾的任意数量的空格。表5.3 描述了两个可用的剪裁方法。 表5.3 字符串剪裁,String类,【例5.5】使用S

11、tring.Trim方法可以很容易地移除字符串首尾的空格,如下所示: /trim的用法 string aa=“ hello “; Response.Write(“Trim: “+aa.Trim()+“); /remove:从字符串指定索引位置移除指定数目的字符 string b=“12345“; Response.Write(“remove: “+b.Remove(2,3)+“);,String类,2)填充 System.String也提供了为现有字符串创建新版本的方法,它是通过扩展一定数量的字符实现的。表5.4描述了可用的填充方法。 表5.4 字符串填充方法,String类,【例5.6】St

12、ring.PadLeft方法创建一个新的字符串,该方法把字符串向右移动,使该字符串从第一个字符到最后一个字符的长度正好为指定的数目。如果没有使用重写方法来指定自定义填充字符时,那么就会插入空格。 /padleft右对齐并左填充,此程序中字符串总长度为5 string c=“hello“; Response.Write(“padleft: “+c.PadLeft(10,-)+“);,String类,6. Split和Join System.String类提供了用来拆分字符串的Split方法以及用来连接字符串的Join方法。 1)Split方法 Split方法把字符串实例分解成由其子串组成的字符串

13、数组,分解的位置由分隔符指定。若不指定分隔符,即参数为null时,则假定分隔符为空格。如果分隔符字符串是一个零长度的字符串,那么将返回包含该字符串整个表达式的单元素数组。 【例5.7】拆分字符串实例。 /split:将字符串拆分成字符串数组,分解位置由分隔符指定 string dd=“hello world“; string f=dd.Split(null);/分隔符是null,即空格 Response.Write(“拆分字符串:“+f1+“);,String类,2)Join方法 Join方法用指定的分隔符把特定的String数组的各元素连接起来,产生单个连接的字符串。如果不指定分隔符,也就是

14、说分隔符为null时,那么就使用空白字符(” ”)作为分隔符。如果分隔符是零长度的字符串(”),那么数组中的所有元素不使用分隔符直接连接在一起。,StringBuilder 类,String对象是不可变的,因此,每次使用System.String类中的方法时,都将创建新的字符串对象。当反复修改字符串时,创建新的String对象带来的开销将会非常大。可供选择的方法是使用Sytem.Text.StringBuilder类来修改字符串,这样可以避免创建新的字符串对象。,StringBuilder 类,1. 创建StringBuilder对象 通过使用一个重载的StringBuilder类的构造函数来

15、初始化变量,就可以创建该类的一个新实例,正如下面的代码示例所阐释的那样。 StringBuilder s=new StringBuilder(“hello“); 尽管StringBuilder对象是一个动态对象,允许向其所封装的字符串中添加字符,但是也可以指定其所包含的字符数目的最大值。这个值称为StrngBuilder对象的容量。 注意:不要将它与当前StringBuilder对象容纳的字符串长度相混淆。任何扩展StringBuilder对象的长度而使其超出了该对象最大范围的行为,都会引发ArgumengOutOfRangeException异常。,StringBuilder 类,2. St

16、ringBuilder方法 表5.5描述了可以用来修改StirngBuilder对象内容的一些方法。 表 5.5 StirngBuilder对象内容修改,StringBuilder 类,【例5.8】StringBuilder.Append和StringBuilder.Insert的使用方法示例。 /StringBuilder类的用法 s.Append(“!“); Response.Write(s+“); s.Insert(2,“-“);/在第2个字符处插入一字符串 Response.Write(s);,5.2 集合和泛型,5.2.1 集合和集合接口 5.2.2 使用主要集合类型 5.2.3 使用泛型集合 5.2.4 使用专用集合,5.2 集合和泛型,通过使用集合,可以将许多对象存储在一个对象中。 .NET Framework 2.0引入了泛型集合和集合基类。这些新的集合类提供了增强的功能,因此可以更高效地使用它们来创建自己的集合类型。,集合和集合接口,假设正在开发一个雇员跟踪应用程序。这

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号