C#第3章常用数据类型的用法.ppt
《C#第3章常用数据类型的用法.ppt》由会员分享,可在线阅读,更多相关《C#第3章常用数据类型的用法.ppt(74页珍藏版)》请在三一办公上搜索。
1、第3章 常用数据类型的用法,3.1 字符串3.2 数组3.3 枚举3.4 泛型3.5 泛型集合3.6 日期与时间处理3.7 数学运算3.8 随机数,字符串是应用程序和用户交互的主要方式,是评价一个编程语言非常重要的内容。.NET提供了几个类来快速实现字符串操作,包括String、System.Text命名空间等。字符串是由一个或多个Unicode字符构成的一组字符序列。System.String是最常用的字符串操作类,可以帮助开发者完成绝大部分的字符串操作功能,使用方便。,3.1 字符串,3.1 字符串,1.字符串的创建与表示形式直接将字符常量赋给字符串类型对象或者通过构造函数String类(
2、string):string myString=some text;string s2=new string(a,2);/结果为aaString.Empty 表示空字符串String类的表示方法:string str=C:testfirst.cs string str=C:testfirst.cs 取字符串中的某个字符的方法:char chFirst=myString2;/结果为m,2.字符串比较比较字符串是指按照字典排序规则,判定两个字符的相对大小。按照字典规则,在一本英文字典中,出现在前面的单词小于出现在后面的单词。在String类中,常用的比较字符串的方法包括Compare、Compar
3、eTo、CompareOrdinal以及Equals,3.1 字符串,3.1 字符串,2.字符串比较字符串比较方法string.Compare(string s1,string s2)Compare方法是String类的静态方法,用于全面比较两个字符串对象,包括6种重载方式。如果s1大于s2,结果为1;如果s1等于s2,结果为0;如果s1小于s2,结果为-1。string.Compare(string s1,string s2,bool ignoreCase)ignoreCase确定是否区分大小写,CompareTo方法CompareTo方法将当前字符串对象与另一个对象做比较,其作用与Comp
4、are类似,返回值也相同。区别在于:CompareTo不是静态方法,可以通过一个String对象调用;CompareTo没有重载形式,只能按照大小写敏感方式比较两个整串。string strA=Hello;string strB=World;Console.WriteLine(strA.CompareTo(strB);/-1,3.1 字符串,Equals方法Equals方法用于方便地判定两个字符串是否相同,有两种重载形式:public bool Equals(string)public static boolEquals(string,string)如果两个字符串相等,Equals()返回值为
5、True;否则,返回False。Equals方法的使用如下例所示。/EqualsConsole.WriteLine(String.Equals(strA,strB);/falseConsole.WriteLine(strA.Equals(strB);/false,3.1 字符串,比较运算符String支持两个比较运算符“=”、“!=”,分别用于判定两个字符是否相等和不等,并区分大小写。相对于上面介绍的方法,这两个运算符使用起来更加直观和方便。下例中,使用“=”、“!=”对“Hello”和“World”进行比较。/=和!=Console.WriteLine(strA=strB);/falseCo
6、nsole.WriteLine(strA!=strB);/false,3.1 字符串,2.StartWith/EndsWith方法StartWith方法可以判定一个字符串对象是否以另一个子字符串开头,如果是返回True;否则返回False。其定义为:Public bool StartsWith(string value)其中,参数value即待判定的子字符串。/StartWithConsole.WriteLine(strA.StartsWith(He);/trueConsole.WriteLine(strA.StartsWith(MM);/false另外,EndsWith方法可以判定一个字符是
7、否以另一个子字符串结尾。,3.1 字符串,3.1 字符串,3.字符串查找Contains方法:用于查找一个字符串中是否包含指定的子字符串。语法为:public bool Contains(string value)例如:string str1=this is a string.;bool b=str1.Contains(is);,IndexOf方法:求某个字符或者子串在字符串中第一次出现的位置,该方法区分大小写,并从字符串的首字符开始以计数。如果字符串中不包含这个字符或子串,则返回-1。两种最常用的重载形式:public int IndexOf(string s)public int Inde
8、xOf(string s,int startIndex)【例】/IndexofConsole.WriteLine(strA.IndexOf(l);/2,3.1 字符串,LastIndexOf方法:LastIndexOf方法的用法与IndexOf方法相同,查找某个字符或者子串最后一次出现的位置,但是此方法从此实例的最后一个字符位置开始,从后向前进行搜索,直到找到 value 或检查到第一个字符位置,即搜索方向相反。【例】string strA=Hello;Console.WriteLine(strA.LastIndexOf(l);,3.1 字符串,3.1 字符串,IndexOfAny方法:功能同
9、IndexOf类似,区别在于,可以搜索在一个字符串中,出现在一个字符数组中的任意字符第一次出现的位置。同样,该方法区分大小写,并从字符串的首字符开始以计数。如果字符串中不包括这个字符或子串,则返回-1。I查找某个字符串中是否包含某些字符(多个不同的字符)。常用语法:public int IndexOfAny(char anyOf)例如:string s1=123abc123abc123;char c=a,b,5,8;int x=s1.IndexOfAny(c);/x结果为3,3.1 字符串,4.求子字符串Substring(int startIndex)截取从startIndex开始到字符串结
10、尾的字符串。Substring(int startIndex,int count)截取字符串从startIndex位开始,截取长度为count的字符串。例如:string str=abc123;string s1=str.Substring(2);/s1:c123 string ss=str.Substring(1,4);Console.WriteLine(ss);/bc12,3.1 字符串,5.字符串的插入、删除和替换插入字符串Insert方法用于在一个字符串的指定位置插入另一个字符串,从而构造一个新的串。语法形式:public string Insert(int startIndex,st
11、ring value)含义:从startIndex开始插入子字符串value 例如:string s1=abcdabcd;string s2=s1.Insert(2,12);/结果为ab12cdabcd,3.1 字符串,删除字符串两种常用形式:1)Remove(int startIndex)删除从startIndex到字符串结尾的子字符串 2)Remove(int startIndex,int count)删除从startIndex开始的count个字符。例如:string str1=this is a string.;string s1=str1.Remove(2);/s1结果为th Con
12、sole.WriteLine(str1.Remove(1,2);/结果为ts is a string,3.1 字符串,字符串替换 两种常用形式:1)Replace(string oldStr,string newStr)2)Replace(char oldChar,char newChar)例如:string str1=this is a string.;string s1=str1.Replace(a,b);/结果为this is b string.Console.WriteLine(str1.Replace(is,xy);/结果为thxy xy a string,3.1 字符串,6.移除首
13、尾指定的字符从字符串开头或结尾删除指定的字符:利用TrimStart删除字符串首部字符,利用TrimEnd删除字符串尾部字符,利用Trim删除字符串首部和尾部一个或多个字符。其形式如下:public string Trim()public string Trim(paramschar trimChars)其中,参数trimChars数组包含了指定要去掉的字符,如果缺省,则删除空格。,【例1】string s1=this is a book;string s2=that is a pen;string s3=is a pen;Console.WriteLine(s1.TrimStart();/删
14、除首部空格Console.WriteLine(s2.TrimEnd();/删除尾部空格Console.WriteLine(s3.Trim();/删除首部和尾部空格【例2】char trimChars=,#,$,;String strC=Hello#$;string newStr=strC.Trim(trimChars);Console.WriteLine(newStr);/HelloConsole.ReadLine();,3.1 字符串,复制字符串String类包括了复制字符串方法Copy和CopyTo,可以完成对一个字符串及其一部分的复制操作。1.Copy方法若想把一个字符串复制到另一个字符
15、串实例中,可以使用String的静态方法Copy来实现,其形式为:public string Copy(string str);其中,参数str为需要复制的源字符串,方法返回目标字符串。,3.1 字符串,下例中,把strA字符串“Hello”复制到newStr中。/CopynewStr=;newStr=String.Copy(strA);Console.WriteLine(newStr);/CopyTo方法自己参考MSDN。,3.1 字符串,3.1 字符串,7.字符串的合并与拆分Join方法:在数组的每个元素之间串联指定的分隔符,从而产生单个串联的字符串。语法为:public static s
16、tring Join(string separator,string value)Split方法:将字符串按照指定的一个或多个字符进行分离,从而得到一个字符串数组。常用语法为:public string Split(params char separator),字符串的合并和拆分举例,例如:string sArray1=123,456,abc;string s1=string.Join(,sArray1);/结果为123,456,abc“若这样写string s1=string.Join(“”,sArray1);/结果为?string sArray2=s1.Split(,);/sArray2得
17、到的结果与sArray1相同string s2=abc 12;34,56;string sArray3=s2.Split(,;,);/分隔符为逗号、分号、空格Console.WriteLine(string.Join(Environment.NewLine,sArray3);输出结果:abc123456,3.1 字符串,8.字符串中字母的大小写转换ToUpper大写ToLower小写例如:string s1=This is a string;string s2=s1.ToUpper();/s2结果为THIS IS A STRINGstring s3=Console.ReadLine();if(
18、s3.ToLower()=yes)Console.WriteLine(OK);,9.String和StringBuilder,String类实际上表示的是一系列不可变的字符。说其实例是“不可变的”,是因为无法直接修改给该字符串分配的堆中的字符串。例如,在myString的后面接上另一个字符串:myString+=and a bit more;其实际操作并不是在原来myString所占内存空间的后面直接附加上第二个字符串,而是返回一个新String实例,即重新为新字符串分配内存空间。StringBuilder类位于System.Text名称空间下,使用StringBuilder类每次重新生成新字
19、符串时不是再生成一个新实例,而是直接在原来字符串占用的内存空间上进行处理,而且它可以动态的分配占用的内存空间大小。,StringBuilder类用法举例,【例3-1】StringBuilder类的基本用法。using System;using System.Text;namespace StringBuilderExample class Program public static void Main()StringBuilder sb=new StringBuilder();sb.Append(string1);sb.AppendLine(string2);sb.Append(string3
20、);string s=sb.ToString();Console.WriteLine(s);Console.ReadLine();,StringBuilder类用法总结,常用方法Append:追加字符串AppendFormat:追加格式化字符串Remove(int startIndex,int length):从StartIndex位置开始移除长度为length的字符串ToString()举例:StringBuilder builder=new StringBuilder();builder.Append(abc123);builder.AppendFormat(0:d6,456);build
21、er.Remove(1,2);builder.ToString();/a123000456,StringBuilder和string比较,在操作性能和内存效率方面,StringBuilder要比String好得多,可以避免产生太多的临时字符串对象,特别是对于经常重复进行修改的情况更是如此。而另一方面,String类提供了更多的方法,可以使开发能够更快地实现应用。在两者的选择上,如果应用对于系统性能、内存要求比较严格,以及经常处理大规模的字符串,推荐使用StringBuilder对象;否则,可以选择使用String。尤其是在数据库查询字符串拼接时,如果多个字符串拼接,并且是web服务时,性能将大
22、大优于string拼接。,StringBuilder适用场合,StringBuilder类适用于字符串连接操作比较多的情况下,它可以大大提高系统的性能。性能测试对比:拼接从0开始的数字字符串,观察所用的时间,3.2 数组,数组用于存储同一种类型的数据。数组是一种引用类型,而不是值类型。数组是按照数组名、数据元素的类型和维数来描述的。C#中可以有一维数组、多维数组、交错数组。1.数组的声明与初始化 声明数组时,既可以一开始就指定数组元素的个数,也可以一开始不指定元素个数,而是在使用数组元素前动态地指定元素个数。例如:int a=new int30;string mystring=first,se
23、cond,third;,注意:不带new运算符的简化形式只能在声明语句中。mystring=first,second,third;mystring=new string3 first,second,third;注意如果改为new string2“first”,“second”,“third”;将会出现错误,3.2 数组,数组的声明语法举例,数组的秩与数组长度,2.数组的秩与数组长度数组的秩(rank)是指数组的维数,例如一维数组秩为1,二维数组秩为2。数组长度是指数组中所有元素的个数。例如:int a=new int10;/数组长度为10int,b=new int3,5;/数组长度为3*5=1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 常用 数据类型 用法
链接地址:https://www.31ppt.com/p-6502395.html