




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章常用数据类型的用法 3 1字符串3 2数组3 3枚举3 4泛型3 5泛型集合3 6日期与时间处理3 7数学运算3 8随机数 3 1字符串 String类 string stringmyString sometext strings2 newstring a 2 结果为aaToString 方法String Empty表示空字符串String类的表示方法 stringstr C test first cs stringstr C test first cs 取字符串中的某个字符的方法 stringmyString sometext charchFirst myString 2 结果为m 3 1字符串 字符串比较方法string Compare strings1 strings2 如果s1大于s2 结果为1 如果s1等于s2 结果为0 如果s1小于s2 结果为 1 string Compare strings1 strings2 boolignoreCase ignoreCase确定是否区分大小写比较两个字符串是否相等 使用 Equals方法 3 1字符串 字符串查找Contains方法 用于查找一个字符串中是否包含指定的子字符串 语法为 publicboolContains stringvalue 例如 stringstr1 thisisastring boolb str1 Contains is IndexOf方法 求某个字符或者子串在字符串中出现的位置 两种最常用的重载形式 publicintIndexOf strings publicintIndexOf strings intstartIndex LastIndexOf方法 LastIndexOf方法的用法与IndexOf方法相同 查找最后一次出现的位置 3 1字符串 例如 Console WriteLine str1 IndexOf is 结果为2 注意序号从0开始 Console WriteLine str1 LastIndexOf is 结果为5IndexOfAny方法 查找某个字符串中是否包含某些字符 多个不同的字符 常用语法 publicintIndexOfAny char anyOf 例如 strings1 123abc123abc123 char c a b 5 8 intx s1 IndexOfAny c x结果为3 3 1字符串 截取字符串Substring intstartIndex intcount 截取字符串从startIndex位开始 截取长度为count的字符串例如 stringstr abc123 stringss str Substring 1 4 Console WriteLine ss bc12 3 1字符串 删除指定数量的字符Remove intstartIndex intcount 例如 stringstr1 thisisastring Console WriteLine str1 Remove 1 2 结果为tsisastring字符串替换Replace stringoldStr stringnewStr 例如 stringstr1 thisisastring Console WriteLine str1 Replace is xy 结果为thxyxyastring 3 1字符串 插入字符串例如 strings1 abcdabcd strings2 s1 Insert 2 12 结果为 ab12cdabcd 从字符串开头或结尾删除指定的字符 利用TrimStart删除字符串首部空格 利用TrimEnd删除字符串尾部空格 利用Trim删除字符串首部和尾部空格 例如 strings1 thisisabook strings2 thatisapen strings3 isapen Console WriteLine s1 TrimStart 删除首部空格Console WriteLine s2 TrimEnd 删除尾部空格Console WriteLine s3 Trim 删除首部和尾部空格 3 1字符串 字符串的合并与拆分Join方法 在数组的每个元素之间串联指定的分隔符 从而产生单个串联的字符串 语法为 publicstaticstringJoin stringseparator string value Split方法 将字符串按照指定的一个或多个字符进行分离 从而得到一个字符串数组 常用语法为 publicstring Split paramschar separator 字符串的合并和拆分举例 例如 string sArray1 123 456 abc strings1 string Join sArray1 结果为 123 456 abc string sArray2 s1 Split sArray2得到的结果与sArray1相同strings2 abc12 34 56 string sArray3 s2 Split 分隔符为逗号 分号 空格Console WriteLine string Join Environment NewLine sArray3 输出结果 abc123456 3 1字符串 ToUpper大写ToLower小写例如 strings1 Thisisastring strings2 s1 ToUpper s2结果为THISISASTRINGstrings3 Console ReadLine if s3 ToLower yes Console WriteLine OK 3 2String和StringBuilder String类实际上表示的是一系列不可变的字符 说其实例是 不可变的 是因为无法直接修改给该字符串分配的堆中的字符串 例如 在myString的后面接上另一个字符串 myString andabitmore 其实际操作并不是在原来myString所占内存空间的后面直接附加上第二个字符串 而是返回一个新String实例 即重新为新字符串分配内存空间 StringBuilder类位于System Text名称空间下 使用StringBuilder类每次重新生成新字符串时不是再生成一个新实例 而是直接在原来字符串占用的内存空间上进行处理 而且它可以动态的分配占用的内存空间大小 StringBuilder类用法举例 例3 1 StringBuilder类的基本用法 usingSystem usingSystem Text namespaceStringBuilderExample classProgram publicstaticvoidMain StringBuildersb newStringBuilder sb Append string1 sb AppendLine string2 sb Append string3 strings sb ToString Console WriteLine s Console ReadLine 3 3数组 数组用于存储同一种类型的数据 数组是一种引用类型 而不是值类型 数组是按照数组名 数据元素的类型和维数来描述的 C 中可以有一维数组 多维数组 交错数组 1 数组的声明与初始化声明数组时 既可以一开始就指定数组元素的个数 也可以一开始不指定元素个数 而是在使用数组元素前动态地指定元素个数 例如 int a newint 30 string mystring first second third 数组的声明语法举例 数组的秩与数组长度 2 数组的秩与数组长度数组的秩 rank 是指数组的维数 例如一维数组秩为1 二维数组秩为2 数组长度是指数组中所有元素的个数 例如 int a newint 10 数组长度为10int b newint 3 5 数组长度为3 5 15 其中第0维长度为3 第1维长度为5 数组用法举例 例3 2 编写一个控制台应用程序 定义一个二维数组 分别输出数组的秩 数组长度以及数组中的每个元素值 数组 3 一维数组在C 中 数组的下标默认是从0开始索引的 Length属性表示数组的长度 4 多维数组多维数组指维数大于1的数组 常用的是二维数组和三维数组 C 语言支持两种类型的二维数组 一种是二维矩形数组 另一种是二维交错数组 对于二维矩形数组 数组中的每一行都有相同的列数 例如 int n2 newint 1 2 3 4 5 6 数组 5 交错数组交错数组相当于一维数组的每一个元素又是一个数组 也可以把交错数组称为 数组的数组 例如 int n1 newint 2 newint 2 4 6 newint 1 3 5 7 9 交错数组的每一个元素既可以是一维数组 也可以是多维数组 交错数组用法举例 例3 3 交错数组的用法 数组 6 动态改变数组的大小Resize方法publicstaticvoidResize refT array intnewSize 这是一种泛型表示形式 其中T表示数组类型 array为要调整大小的一维数组 该数组从零开始 如果为null则新建具有指定大小的数组 如果newSize大于旧数组的Length 则分配一个新数组 并将所有元素从旧数组复制到新数组 如果newSize小于旧数组的Length 则分配一个新数组 并将元素从旧数组复制到新数组直到新数组被填满为止 旧数组中的剩余元素将被忽略 如果newSize与旧数组的Length相等 则此方法不执行任何操作 动态改变数组的大小举例 例3 4 演示如何动态改变一维数组的大小 数组 7 数组元素的排序与查找C 语言中还提供了Sort和Reverse这样的静态方法 这些方法用快速排序算法将一维数组中的元素按照升序或降序排列 还可以方便地查找指定的元素 例如Contains方法和IndexOf方法等 数组排序和查找举例 例3 5 一维数组的排序和查找 数组的统计以及数组和字符串间的转换 利用数组的Average方法 Sum方法 Max方法和Min方法可以求数组中所有元素的平均值 求所有元素的和 最大值和最小值 对于字符串数组 可以直接利用字符串的Join方法和Split方法实现字符串和字符串数组之间的转换 数组元素统计和字符串转换举例 例3 6 演示如何统计数组中的元素以及如何实现数组和字符串之间的转换 3 3枚举 枚举 enum 是一组命名常量的集合 称为枚举成员列表 它可以为一组在逻辑上密不可分的整数值提供便于记忆的符号 从而使代码更清晰 也易于维护 声明enum类型变量的语法为 附加声明 访问修饰符 enum名称 数据类型 枚举列表 例如 enumdays Mon Tue Wed Thu Fri Sat 注意 enumdays byte X1 255 X2 错误 3 4泛型 泛型 Generic 是具有占位符 类型参数 的类 结构 接口和方法 它与普通类的区别是泛型多了一个或多个表示类型的占位符 这些占位符用尖括号括起来 例如 publicclassMyClass publicTMyProp get set 定义属性MyProppublicvoidPrint Console WriteLine MyProp 泛型 例3 8 演示泛型的定义与用法 可空泛型 可空类型是泛型结构Nullable的实例 例如 Nullable读作 可以为null的Int32 可以将其赋值为任一个32位整数值 也可以将其赋值为null值 可空类型具有以下特性 1 可空类型表示可被赋值为null值的值类型变量 但是要注意 由于引用类型已支持null值 因此不能用该类型创建基于引用类型的null类型 2 语法 T 是泛型 Nullable 的简写 此处的T为值类型 这两种形式可以互换 如Nullable也可以写为int 3 程序员可以使用泛型的HasValue和Value只读属性测试是否为空和检索值 如果此变量包含值 则HasValue属性返回True 如果此变量的值为空 则返回False 3 5泛型集合 在System Collections Generic命名空间下 提供了常用的泛型集合类 哈希集合 HashSetHashSet泛型类提供了高性能的数学集合运算 一个HashSet对象的容量是指该对象可以容纳的元素个数 常用方法 UnionWith方法 并集或Set加法IntersectWith方法 交叉ExceptWith方法 set减法SymmetricExceptWith方法 余集 列表和排序列表 List泛型类表示可通过索引访问的强类型对象列表 该类提供了对列表进行搜索 排序和操作的方法 常用方法如下 Add方法 将指定值的元素添加到列表中 Insert方法 在列表的中间插入一个新元素 Contains方法 测试该列表中是否存在某个元素 Remove方法 从列表中移除带有指定键的元素 Clear方法 移除列表中的所有元素 SortedList排序列表 用法与List类似 列表和排序列表举例 例3 9 演示泛型列表的定义与用法 链表 LinkedList为双向链表 LinkedList对象中的每个节点都属于LinkedListNode类型 每个节点又指向其Next节点和Previous节点 LinkedList接受null引用作为引用类型的有效Value属性 并且允许重复值 如果LinkedList为空 则First和Last属性为null 字典和排序字典 Dictionary泛型类提供了从一组键到一组值的映射 字典中的每个添加项都由一个值及其相关联的键组成 通过键来检索值 该泛型类提供的常用方法如下 Add方法 将带有指定键和值的元素添加到字典中 TryGetValue方法 获取与指定的键相关联的值 ContainsKey方法 确定字典中是否包含指定的键 Remove方法 从字典中移除带有指定键的元素 队列 Queue泛型类表示对象的先进先出集合 队列在按接收顺序存储消息方面非常有用 存储在队列中的对象在一端插入 从另一端移除 队列可以保存null值并且允许有重复的元素 常用方法如下 Enqueue方法 将指定元素插入列尾 Dequeue方法 队列首元素出列 堆栈 Stack泛型类表示同类型实例的大小可变的后进先出 LIFO 集合 堆栈可以保存null值并且允许有重复值 常用方法如下 Push方法 将指定元素插入栈顶 Pop方法 弹出栈顶元素 3 6日期与时间处理 对日期和时间处理的常用类是DateTime类和TimeSpan类 DateTime类表示范围在0001年1月1日午夜12 00 00到9999年12月31日晚上11 59 59之间的日期和时间 最小时间单位等于100纳秒 TimeSpan类表示一个时间间隔 其范围在Int64 MinValue到Int64 MaxValue之间 3 6日期与时间处理举例 例3 10 DateTime类的用法举例 例3 11 显示当前日期和时间 3 7数学运算 Math类位于System命名空间下 为三角函数 对数函数和其他通用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基础强化华东师大版7年级下册期末试题附答案详解(典型题)
- 解析卷北师大版8年级数学上册期末试题及参考答案详解【满分必刷】
- 2025年能源与资源行业:煤炭资源勘探与开发技术进步报告
- 2025年生物制药中试车间投资风险与收益分析报告
- 2025年职业教育实训基地建设资金申请条件与审批流程报告
- 2025年度上海教育信息化技术服务合同
- 2025版总公司与分公司知识产权保护管理合同
- 2025年度餐饮企业人才培训顾问服务协议
- 2025年度医疗影像设备监造与维修保障合同
- 2025年度科研机构项目负责人聘请与技术攻关合同
- 陶瓷功能检测培训
- 2025至2030中国锅炉行业市场深度调研报告
- 颈椎损伤的急救与护理
- 临床常用麻醉方式解析
- 《综合交通运输概论(第5版)》全套教学课件
- 2025年呼伦贝尔农垦集团有限公司招聘笔试参考题库含答案解析
- 【课件】物质的变化和性质-2024-2025学年九年级化学人教版(2024)上册
- JG/T 270-2010工业构筑物水泥基耐磨材料
- 护士转行病案管理制度
- 网络协议分析实践试题及答案
- 企业往来款协议书
评论
0/150
提交评论