收藏 分享(赏)

3数组枚举结构字符串.ppt

上传人:hwpkd79526 文档编号:7313963 上传时间:2019-05-14 格式:PPT 页数:28 大小:1.41MB
下载 相关 举报
3数组枚举结构字符串.ppt_第1页
第1页 / 共28页
3数组枚举结构字符串.ppt_第2页
第2页 / 共28页
3数组枚举结构字符串.ppt_第3页
第3页 / 共28页
3数组枚举结构字符串.ppt_第4页
第4页 / 共28页
3数组枚举结构字符串.ppt_第5页
第5页 / 共28页
点击查看更多>>
资源描述

1、,第三章 数组、枚举、 结构体、字符串,数组,定义:数组是同一数据类型的一组值 特征:数组属于引用类型,因此存储在堆内存中 使用:数组元素初始化或给数组元素赋值都可以在声明数组时或在程序的后面阶段中进行。 语法:数据类型 数组名称;请看例子int num1=new int100;int num2;num2 = new int100;int num3 = new int 45, 45, 68, -1, 0 ;,注意二维数组的声明: Int , num=new int3,4;,数组示例,学生分数的整数数组,职员姓名的字符串数组,室温的浮点数组,数组位置,数组演示,static void Main(

2、string args) int count;Console.WriteLine(“请输入您要登记的学生人数 “);count=int.Parse(Console.ReadLine();/ 声明一个存放姓名的字符串数组,其长度等于提供的学生人数 string names = new stringcount;/ 用一个 for 循环来接受姓名 for(int i=0; icount; i+)Console.WriteLine(“请输入学生 0 的姓名 “,i+1);namesi=Console.ReadLine();Console.WriteLine(“已登记的学生如下: “);/ 用 fore

3、ach 循环显示姓名 foreach(string disp in names)Console.WriteLine(“0“, disp); ,数组声明,初始化数组元素的循环,显示输出的循环,Sort方法:对一维数组排序。它是System.Array类的静态方法. 如: string name=new string“xi“,“ang“,“zhang“,“chun“; Array.Sort(name); foreach(string s in name) Console.WriteLine(s); ,数组中的属性及常用方法,属性(length):表示数组所有维数中元素的总数 . 如: int nu

4、mber=1,2,3,4; number.Length的值为4; Rank属性:表示数组中的维数。 string, names = new string5,4; names.Rank的值为2。,System.Array 是所有数组类型的抽象基类型。提供创建、操作、搜索和排序数组的方法,因而在公共语言运行库中用作所有数组的基类。因此所有数组都可以使用它的属性和方法。,数组的方法,在C#中的数组对象,可以用Reverse()方法颠倒数组中的元素顺序。Reverse()方法是一个静态方法,所以作为参数将需要颠倒顺序的数组元素传递给Reverse()方法,struct structEx public

5、int structDataMember;public void structMethod1()/structMethod1 实现 ,自定义数据类型 可以在其内部定义方法 无法实现继承 属于值类型主要结构:,struct student public int stud_id;public string stud_name;public float stud_marks;public void show_details()/显示学生详细信息Console.WriteLine(“我叫”+stud_name);,结构,数据成员,方法,所有与 Student 关联的详细信息都可以作为一个整体进行存储和

6、访问,枚举,public class Holiday public enum WeekDaysMonday,Tuesday,Wednesday,Thursday,Fridaypublic void GetWeekDays (String EmpName, WeekDays DayOff)Console.WriteLine(int)DayOff); static void Main()Holiday myHoliday = new Holiday();myHoliday.GetWeekDays (“Richie“, Holiday.WeekDays.Wednesday); ,枚举(Enum,En

7、umerator 的缩写)是一组已命名的数值常量 用于定义具有一组特定值的数据类型 枚举以 enum 关键字声明,Wednesday = 2,枚举(续),C# 中的枚举包含与值关联的数字 默认情况下,将 0 值赋给枚举的第一个元素,然后对每个后续的枚举元素按 1 递增 在初始化过程中可重写默认值,public enum WeekDays Monday=1,Tuesday=2,Wednesday=3,Thursday=4,Friday=5 ,这样可以吗?WeekDays.Thursday=? public enum WeekDays Monday,Tuesday=-20,Wednesday=30

8、,Thursday,Friday=0 ,字符串(string),定义:字符串就是一组不可变的字符序列。 基类:System.String 属性: Chars :获取指定字符位置的字符。Console.Write(“Type a string : “);string myString = Console.ReadLine();for (int i = 0; i myString.Length; i +)if(Uri.IsHexDigit(myStringi)Console.WriteLine(“0 is a hexadecimal digit.“, myStringi);else Console

9、.WriteLine(“0 is not a hexadecimal digit.“, myStringi); Length:返回此实例中 Char 对象的个数,而不是 Unicode 字符个数。原因在于一个 Unicode 字符可能会用多个 Char 表示。 string tmp = “u738B“; Console.WriteLine(“字符串的长度是0:d“,tmp.Length);,确定指定的字符是否是有效的十六进制数字,结果是?,当改变字符串的值时,其实已经另外分配了一块内存,原来的内存被垃圾收集器回收,字符串常用方法,bool EndsWith ( string value ) :

10、确定此实例的末尾是否与指定的字符串匹配。 bool Equals ( string value ) :如果 value 参数的值与此实例相同,则为 true;否则为 false。(此方法执行顺序(区分大小写)比较。) int IndexOf ( string value ) :如果找到该字符,则为 value 的索引位置;如果未找到该字符,则为 -1。如果 value 为 Empty,则返回值为 0。 int LastIndexOf ( string value ) :value 在此实例内的最后一个匹配项的索引位置。返回值同上,字符串常用方法,string Trim () 从此实例的开始位置

11、和末尾移除空白字符的所有匹配项。 string Substring ( int startIndex, int length ) 从此实例检索子字符串。子字符串从指定的字符位置startIndex开始且具有指定的长度length 。 string Split ( params char separator ) 返回包含此实例中的子字符串(由指定 Char 数组的元素分隔)的 String 数组 string PadLeft ( int totalWidth, char addingChar ) 右对齐此实例中的字符,在左边用指定的 addingChar字符填充以达到指定的总长度。 string

12、 PadRight ( int totalWidth, char paddingChar )左对齐此字符串中的字符,在右边用指定的 paddingChar字符填充以达到指定的总长度。 string Replace ( string oldValue, string newValue ) 将此实例中的指定 oldValue的所有匹配项替换为其他指定的 newValue 。,Params修饰符: 用于修饰传递可变参数的数组 ,详情请查阅msdn,字符串演示,string useStringMethod = “ 在天门城管殴打致死一人案件中,天门市城管局纪检组长孙代榜被警方刑拘 “;/使用EndsW

13、idthConsole.WriteLine(useStringMethod.EndsWith(“孙代榜“);/使用indexOfConsole.WriteLine(useStringMethod.IndexOf(“刑拘“);/使用trimConsole.WriteLine(useStringMethod.Trim();/使用SubstringConsole.WriteLine(useStringMethod.Trim().Substring(15);/使用splitstring str = useStringMethod.Trim().Split(,);Console.WriteLine(st

14、r1);/使用PadRightConsole.WriteLine(str0.PadRight(20, .);/使用ReplaceConsole.WriteLine(useStringMethod.Trim().Replace(,, 一);,字符串的格式化,简介: .NET Framework 提供了一种一致、灵活而且全面的方式,使您能够将任何数值、枚举以及日期和时间等基数据类型表示为符合某种格式的字符串。格式化由格式说明符字符的字符串控制,该字符串指示如何表示基类型值。 分类: 数字格式化 枚举格式化 日期时间格式化,红色部分重点掌握,数字格式化,标准数字格式字符串用于格式化通用数值类型。标准

15、格式字符串采取“Axx”形式,其中“A”为单个字母字符(被称为格式说明符),“xx”是可选的整数(被称为精度说明符)。,0代表输出的第一个数据,以此类推,演示,int a = 12345678;/格式为sring输出Console.WriteLine(string.Format(“第一个0数据”,a);/输出第一个12345678数据 Console.WriteLine(string.Format(“人民币0:C数据”,a); /输出输出人民币¥1,234.00数据 Console.WriteLine(string.Format(“带精度0:C3数据”,b);/带精度¥1,234.125数据,

16、自定义数字格式,b = 4321.12543; a = 1234; /自定义模式输出: / 0 描述:占位符,如果可能,填充位 / Label1.Text = string.Format(“0:000000“,a);/ 001234 / Label2.Text = string.Format(“0:000000“,b);/ 004321 / # 描述:占位符,如果可能,填充位 / Label1.Text = string.Format(“0:#“,a);/ 1234 / Label2.Text = string.Format(“0:#“,b);/ 4321 / Label1.Text = st

17、ring.Format(“0:#0#“,a);/ 01234 / Label2.Text = string.Format(“0:0#0000“,b);/ 004321/ . 描述:小数点 / Label1.Text = string.Format(“0:000.000“,a);/1234.000 / Label2.Text = string.Format(“0:000.000“,b);/4321.125,b = 87654321.12543; a = 12345678; / , 描述:数字分组,也用于增倍器 / Label1.Text = string.Format(“0:0,00“,a);/

18、 12,345,678 / Label2.Text = string.Format(“0:0,00“,b);/ 87,654,32 / Label1.Text = string.Format(“0:0,“,a);/ 12346 / Label2.Text = string.Format(“0:0,“,b);/ 87654 / Label1.Text = string.Format(“0:0,“,a);/ 12 / Label2.Text = string.Format(“0:0,“,b);/ 88 / Label1.Text = string.Format(“0:0,“,a);/ 0 / La

19、bel2.Text = string.Format(“0:0,“,b);/ 0 / % 描述:格式为百分数 / Label1.Text = string.Format(“0:0%“,a);/ 1234567800% / Label2.Text = string.Format(“0:#%“,b);/ 8765432113% / Label1.Text = string.Format(“0:0.00%“,a);/ 1234567800.00% / Label2.Text = string.Format(“0:#.00%“,b);/ 8765432112.54%,详细说明 请参见 课后文档,正则表达

20、式,英文名称:Regular Expression(也称为“regex”或“regexp”) 定义:是一种用来描述文本模式的特殊语法 ,简单地说就是你需要匹配的字符串 。 组成:一个正则表达式由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符,如/、*、?等)组成,请回想一下在硬盘上是如何查找文件的。您肯定会使用 ? 和 * 字符来帮助查找您正寻找的文件。? 字符匹配文件名中的单个字符,而 * 则匹配一个或多个字符。一个如 data?.dat 的模式可以找到下述文件: data1.dat data2.dat datax.dat dataN.dat,正则表达式的作用,区分字符串中所有重复

21、的单词 例如 The computer booksbooks转换为The computer books,把所有单词都转换为标题形式 例如 this is a Title转换为This Is A Title,确保句子有正确的大写形式,区分URI的各个元素(例如http:/,提取出协议名,计算机名,文件名),元字符,元字符续,正则表达式常用类,Regex : 表示不可变(只读)正则表达式类。它还包含各种静态方法 。,Match : 表示正则表达式匹配操作的第一个匹配结果。使用 Match 类的 Match.Success 属性来指示是否已找到匹配。,MatchCollection : 类表示成功的

22、非重叠匹配的序列 。,正则表达式类所属命名空间 System.Text,演示,常用正则表达式,只能输入数字: “0-9*$”。 只能输入n位的数字: “dn$”。只能输入至少n位的数字: “dn,$”。只能输入mn位的数字:。 “dm,n$” 只能输入零和非零开头的数字: “(0|1-90-9*)$”。 只能输入有两位小数的正实数:“0-9+(.0-92)?$”。 只能输入有13位小数的正实数:“0-9+(.0-91,3)?$”。 只能输入非零的正整数: “+?1-90-9*$”。 只能输入非零的负整数: “-1-90-9”*$。 只能输入长度为3的字符: “.3$“。 只能输入由26个英文字

23、母组成的字符串:“A-Za-z+$“。 只能输入由26个大写英文字母组成的字符串:“A-Z+$“。 只能输入由26个小写英文字母组成的字符串:“a-z+$“。 只能输入由数字和26个英文字母组成的字符串:“A-Za-z0-9+$“。 只能输入由数字、26个英文字母或者下划线组成的字符串:“w+$“。,总结,数组是同一数据类型的一组值,属于引用类型。 结构是一种自定义的数据类型,属于值类型,可以定义方法。 枚举是一组以命名的数值常量,默认初始值为0,可以设置任意整型值。 String类型的字符串属于引用类型,值是不可变的。 有很多常用的属性及方法。,续上,字符串格式化可以使字符按照某种格式显示,

24、分为 数字格式化、枚举格式化、日期格式化。正则表达式是用来描述文本模式的特殊语法。主要用于替换、搜索,作业1,请写出下面描述中的正则表达式 验证用户密码:正确格式为:以字母开头,长度在618之间,只能包含字符、数字和下划线。 “a-zA-Zw5,17$“ 验证是否含有%=?$x22+“。 只能输入汉字“u4e00-u9fa50,$“ 验证Email地址。 验证InternetURL./?%&=*)?$”。 验证电话号码“(d3,4-)|d3.4-)?d7,8$“ 验证身份证号(15位或18位数字):“d15|d18$”。 验证一年的12个月:正确格式为:“01“09“和“1“12“。 (0?1

25、-9|10-2)$“ 验证一个月的31天:正确格式为;“01“09“和“1“31“。 “(0?1-9)|(1|2)0-9)|30|31)$“,作业2,在人事管理系统中,员工的信息及约束如下: 姓名 :只能是中文 性别 :只能男或者女 年龄 :数字 身份证 :18位数字 电话 :区号-电话号码 邮编 :6位数字 档案工资 :数字 职务工资 : (总经理=5000、部门经理=4000、一般员工=2000)其中一项 部门 : (市场部、学术部、办公室、后勤部)其中一项 职务 : (总经理、部门经理、一般员工)其中一项 程序实现功能如下: 1添加员工信息(最多30个员工) 2查询员工信息a根据姓名查询b根据年龄范围(如最小年龄10,最大年龄30)c根据工资范围(如最低工资200,最高工资500) 3统计员工信息a按部门统计人数b按职务统计人数c按工资(职务工资+档案工资)范围统计人数,要求界面美观、编码规范、操作简单易用,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报