CSharp_03_数组与字符串.ppt_第1页
CSharp_03_数组与字符串.ppt_第2页
CSharp_03_数组与字符串.ppt_第3页
CSharp_03_数组与字符串.ppt_第4页
CSharp_03_数组与字符串.ppt_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

VisualC NET 天津农学院计算机科学与信息工程系许晓华 第3讲数组与字符串 一维数组字符串多维数组 数组的定义 int num newint 10 int num1 newint 3 1 2 3 int num1 1 2 3 此两行等价string name Jim John 定义字符串数组 数组的默认值 数组元素会自动初始化为默认值 staticvoidMain string args int i newint 5 float f newfloat 5 char c newchar 5 bool b newbool 5 Console WriteLine i 0 Console WriteLine f 0 Console WriteLine c 0 Console WriteLine b 0 面试题 开灯问题 对一批编号为1 100 全部关着的灯进行以下操作 凡是1的倍数反方向拨一次开关 2的倍数反方向又拨一次开关 3的倍数反方向又拨一次开关 100的倍数反方向又拨一次开关问 最后哪些灯是开着的 例3 1开灯问题 有n盏灯 编号为1 n 第一个人把所有灯打开第二个人按下2的倍数的灯的开关第三个人按下3的倍数的灯的开关 一共k个人 最后有哪些灯开着 输入n和k 输出开着的灯的编号 k n 1000 常量数组 staticreadonlyint arr newint 5 1 2 3 4 5 staticreadonlyint arr 1 2 3 4 5 不能用const了字符型的常量数组可定义成字符串staticreadonlychar RMB 零 壹 贰 叁 肆 伍 陆 柒 捌 玖 staticreadonlystringRMB 零壹贰叁肆伍陆柒捌玖 conststringRMB 零壹贰叁肆伍陆柒捌玖 数组的常用操作技巧 数组派生自Array类 Array类提供的属性与方法对于数组同样适用 常用的如下 Length 数组长度Array Sort 对数组元素升序排序Array Reverse 对数组元素进行反转 例3 2求数组元素个数 int a 1 2 3 4 5 Console WriteLine a Length 例3 3数组的遍历 int a 1 2 3 4 5 for inti 0 i a Length i Console WriteLine a i int a 1 2 3 4 5 foreach intiina Console WriteLine i 在C 里等价于 例3 4对数组元素升序排序 int a 3 7 2 6 10 Array Sort a foreach intiina Console WriteLine i 例3 5反转数组元素 Array Sort与Array Reverse结合 可实现降序排列int a 4 7 1 9 6 3 Array Sort a Array Reverse a foreach intiina Console WriteLine i 例3 5 程序设计中 用什么变量保存身份证号码呢 长整数可以吗 不可以 因为有人的身份证最后一位是 X 实际上 除了最后一位的X 不会出现其它字母 身份证号码18位 17位 校验码校验码的计算过程 例如 身份证前17位 ABCDEFGHIJKLMNOPQA Q每位数字乘以权值求和 每位数字和它对应的 权 相乘后累加 17位对应的权值分别是 7910584216379105842求出的总和再对11求模然后按下表映射 余数012345678910校验码 10X98765432编写程序 输入身份证号前17位 输出最后1位校验码 作业 有这样一个3位数 组成它的3个数字阶乘之和正好等于它本身 即 abc a b c 这个数字是145 请编程求出满足上述规则的5位数 作业 十进制转换为十六进制 输入一个十进制正整数 输出其十六进制形式 例如 输入254 应该输出FE 字符串 Length属性 字符串中字符的个数Equals 方法 判断两个字符串是否相同Format 方法 格式化字符串Split 方法 将字符串分割成字符数组Join 方法 Split 的相反操作 string Empty null的区别 string Empty等价于 stringstr 表示str指向首元素为 0 字符串结束标志 的字符数组 会分配内存空间 但是该内存空间的首位为 0 TextBox1 Text的默认值为零长度字符串 stringstr null 表示str是一个值为0的指针 不分配任何内存空间 面试题 判定字符串为空的几种写法 哪种最快 A s Length 0 B s string Empty C s 注意 以上方法不能用来判断字符串为NULL 否则会出现 未将对象引用设置到对象的实例 的错误若判断判断字符串是否为空 包含NULL的情况 用String IsNullOrEmpty str 知识线3 效率改善技巧 判定字符串为空 最快的是if s Length 0 例3 6判断两个字符串是否相同 staticvoidMain string args strings1 Hello strings2 World boolb Equals s1 s2 boolb s1 Equals s2 Console WriteLine b 例3 7格式化字符串 放在第一节课 这节课再讲string FormatConsole WriteLine 0 12345678 无任何格式Console WriteLine 0 10 F 12 正数右对齐 负数左对齐Console WriteLine 0 N 12345678 每3位数字用逗号隔开等价于strings string Format 0 N 12345678 Console WriteLine s 例3 7格式化字符串 续 strings string Format 0 F 1234 保留小数点后两位strings string Format 0 E 12345678 科学计数法strings string Format 0 P 0 64 百分比的形式strings string Format 0 x 255 16进制小写strings string Format 0 X 255 16进制大写strings string Format 0 X4 255 4位16进制strings string Format 0 F 1234 保留小数点后两位strings string Format 0 C 9999 货币格式 默认2位小数strings string Format 0 C4 255 货币格式 4位小数 例3 8面试题 double或decimal变量 比如122235401 21644 作为货币的值如何按各个不同国家的习惯来输出 比如美国用 122 235 401 22英国则为 122 235 401 22 例3 9格式化日期时间字符串 staticvoidMain string args strings1 DateTime Now ToString Console WriteLine s1 strings2 string Format 0 yyyy MM ddHH mm ss DateTime Now Console WriteLine s2 strings3 string Format 今天是 0 M月dd日 DateTime Now Console WriteLine s3 strings4 string Format 现在时间是 0 HH点mm分 DateTime Now Console WriteLine s4 例3 10数组与字符串综合示例 输入一组用逗号或空格隔开的数据 对数据进行降序排列并输出显示 join 刚才的例题再加上这两行代码 把split出来的东东 再用 连接 strings string Join stringArray Console WriteLine s 作业 某公司面试题 题目 输入一句英文句子 翻转句子中单词的顺序 但单词内字符的顺序不变 句子中单词以空格符隔开 为简单起见 标点符号和普通字母一样处理 例如 输入 Iamaboy 则输出 boy aamI C 如何换行 一条语句如果太长 怎办 C 中的换行符就是回车 但是不能在方法名和字符串常量中间换行那字符串太长怎么办 用 连接多行 推荐一个好网站欧拉计划 ProjectEuler 例3 11 欧拉计划第8题 欧拉计划 ProjectEuler中文翻译站 目前翻译200道题了 欧拉计划第8题中文翻译 例3 12 键盘错位 敲键盘时 经常会向右错1位 比如想敲 iloveyou 敲成了 o pbrupi 输入错位的字符串 输出其本意 不考虑空格 不考虑英文大写 作业 Caesar加密 据说凯撒大帝是最初发明了加密的人 用于军队传递消息 方法是将字母表中的字母 用其后的第5个字母代替 ABCDEFGHIJKLMNOPQRSTUVWXYZ对应的密文分别是 FGHIJKLMNOPQRSTUVWXYZABCDE编写加密和解密程序 输入原文 进行加密 输出密文 再对密文进行解密 输出原文 知识线1 知识点6 如何阴影显示所有的某变量 双击其中任意一个即可 作业 人民币大写 输入不超过12位的十进制整数 将其转换为人民币大写输出 进阶 考虑小数点考虑对0的处理 两个0以上连在一起如何处理 人民币大写 考虑小数点 考虑0的处理 两个以上连续的0特殊位为0 亿 万 元最高位为0只有0 多维数组Multi DimensionalArray 矩形数组 Rectangulararray交错数组 Jaggedarray又叫锯齿数组 不规则数组 数组的数组 矩形数组 内加上逗号 表示定义矩形数组 string names double scores string names newstring 2 2 John Mary Arlen bill 锯齿数组 一个数组中的元素也是数组 也称锯齿数组 int array int array newint 2 newint 3 5 6 4 newint 4 1 2 3 4 二维数组打印杨辉三角形 锯齿数组打印杨辉三角形 二维数组与锯齿数组效率比较 二维数组与锯齿数组效率比较 锯齿数组的效率瓶颈在于创建和销毁上 但编译器对其存取操作进行了优化 所以应该尽量采用锯齿数组 知识线3 知识点2 采用锯齿数组代替二维数组 杨辉三角 详解九章算法 中记载的表 杨辉三角形的应用 若规定杨辉三角形从第0行开始 它的第N行就是二项式 a b N的展开项系数 a b 0 1 a b 1 a b a b 2 a2 2ab b2 a b 3 a3 3a2b 3ab2 b3它的系数 也是组合数 比如 第3行的第2个元素 就是C23 总结 1 关于初始化变量必须先赋值再使用 否则报错数组元素自动初始化为默认值 可以直接使用 上机实习题 一个很好的题 输

温馨提示

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

评论

0/150

提交评论