C#语言和数据库技术基础TP04_第1页
C#语言和数据库技术基础TP04_第2页
C#语言和数据库技术基础TP04_第3页
C#语言和数据库技术基础TP04_第4页
C#语言和数据库技术基础TP04_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、深入C#的String类第四章回顾与作业点评回顾与作业点评找出下面代码中的错误找出下面代码中的错误public void InputData() int mile; Run(mile); Console.WriteLine(mile); Console.ReadLine(); private void Run(ref int iMile) iMile= iMile+800; 没有没有初始化初始化int mile=0; 调用时缺少调用时缺少refRun(ref mile);Java中中String类有哪些方法?类有哪些方法?提问提问2/41预习检查预习检查说出两个字符串处理方法说出两个字符串处理

2、方法C# 中的类型转换有哪几种方式?中的类型转换有哪几种方式?提问提问3/41本章任务本章任务获取获取URI地址的协议类型地址的协议类型按指定格式输出银行用户信息按指定格式输出银行用户信息实现实现MyBank的查询余额功能的查询余额功能4/41本章目标本章目标掌握掌握 String 类的常用方法类的常用方法掌握数据类型转换方法掌握数据类型转换方法5/41String常用方法常用方法回顾:回顾:Java 中常用的字符串处理方法?中常用的字符串处理方法?C# 中常用的字符串处理方法中常用的字符串处理方法IndexOf():查找某个字符在字符串中的:查找某个字符在字符串中的位置位置Substring

3、():从字符串中截取子字符串:从字符串中截取子字符串ToLower():将字符串转换成小写形式:将字符串转换成小写形式Equals() :比较两个字符串的值是否相等:比较两个字符串的值是否相等Join():连接字符串:连接字符串Split():分割字符串:分割字符串Trim():去掉字符串两边的空格:去掉字符串两边的空格提问提问6/41获取邮箱用户名获取邮箱用户名已有如下代码,按要求增加功能已有如下代码,按要求增加功能需实现的功能需实现的功能提取邮箱的用户名提取邮箱的用户名兼容以下各种形式兼容以下各种形式 yes(YES、yes、 YeS .)输入输入 yes 时,程序循环执行时,程序循环执行

4、static void Main(string args) string email; / 电子邮件地址电子邮件地址 Console.WriteLine(请输入你的邮箱:请输入你的邮箱:); email = Console.ReadLine(); Console.WriteLine(你的邮箱是你的邮箱是 0, email); 示例示例7/41分析需求分析需求如何提取用户的用户名?如何提取用户的用户名? int position = email.IndexOf(); 找到找到 所在的位置所在的位置或者或者() int IndexOf(char/string value);找到第一个匹配项所在的位

5、置找到第一个匹配项所在的位置如果找到则为索引如果找到则为索引位置;否则为位置;否则为-1索引从零开始索引从零开始要查找的字符或字符串要查找的字符或字符串问题问题语法语法示例示例8/41String 截取字符串方法截取字符串方法根据索引截取用户名根据索引截取用户名string name = email.Substring(0, position); string Substring( int startIndex , int length );起始位置起始位置从零开始从零开始截取长度截取长度语法语法示例示例演示示例演示示例1:获取邮箱用户名:获取邮箱用户名9/41String 大小写转换方法大小

6、写转换方法去掉字符串两端空格去掉字符串两端空格 string Trim( );转换成小写转换成小写/大写大写 string ToLower( ); string ToUpper( );Console.WriteLine(是否要继续?是否要继续?yes/no); choice = Console.ReadLine();choice = choice.Trim().ToLower(); /再比较再比较choice与与yes如何兼容各种形式如何兼容各种形式 yes(YES、yes、YeS)?)?比较用户输入的字符串与比较用户输入的字符串与“yes”去掉多余的空格且都变为小写去掉多余的空格且都变为小写

7、问题问题示例示例语法语法10/41分析分析判断字符串相等判断字符串相等如何判定两个字符串相等?如何判定两个字符串相等? if ( name = ) if ( name.Equals( String.Empty ) ) = 和和 Equals()有何区别?有何区别?=: 常用来比较常用来比较int、double等数值类型等数值类型Equals():常用来比较对象:常用来比较对象比较的是地址比较的是地址比较的是内容比较的是内容问题问题11/41空字符串的使用空字符串的使用“”“” 和和String.Empty的区别是什么?的区别是什么? if ( name = ) if ( name.Equals

8、( String.Empty ) ) 分配一个长度为空的分配一个长度为空的存储空间存储空间不分配存储空间不分配存储空间一般情况下,一般情况下,使用使用String.Empty为字符串变量赋初值为字符串变量赋初值name.Length = 0name = String.Emptyname = 判断空字符串的三种代码写法判断空字符串的三种代码写法性能高性能高性能性能低低问题问题12/41下面的字符串处理方法你会用吗?下面的字符串处理方法你会用吗?我们可以通过我们可以通过MSDN自学理解自学理解使用使用MSDN学习更多处理方法学习更多处理方法Compare(string strA,string st

9、rB)LastIndexOf(string value)问题问题操作演示:通过操作演示:通过MSDN学习使用学习使用Compare()和和LastIndexOf()13/41学员操作学员操作获取获取URL地址的协议类型地址的协议类型2-1训练要点训练要点自定义方法的使用自定义方法的使用方法的参数传递方法的参数传递常用字符串处理方法常用字符串处理方法需求说明需求说明输入一个输入一个 URL 地址,自定义方法提取出它使用的地址,自定义方法提取出它使用的协议(协议(HTTP 协议或协议或 FTP 协议等)协议等)指导指导讲解需求说明讲解需求说明14/41学员操作学员操作获取获取URL地址的协议类型地

10、址的协议类型2-2实现思路实现思路1. 自定义方法,参数为自定义方法,参数为 URL 地址,返回协议类型地址,返回协议类型2. 找到找到 URL 中第一个中第一个“:”的位置,的位置,“:”前面的就是协前面的就是协议类型议类型难点指导难点指导使用使用IndexOf(“:”)方法方法 找到找到 “:”的位置的位置使用使用Substring(0, position) 提取协议类型子字符串提取协议类型子字符串指导指导完成时间:完成时间:25分钟分钟15/41共性问题集中讲解共性问题集中讲解常见问题及解决办法常见问题及解决办法代码规范问题代码规范问题调试技巧调试技巧16/41String 常用方法应用

11、常用方法应用使用使用 Split() 方法分割字符串方法分割字符串使用使用 Join() 方法连接字符串方法连接字符串输入一个字符串,输出每个单词,重新用下输入一个字符串,输出每个单词,重新用下划线连接输出划线连接输出问题问题分析分析演示示例演示示例2 2:字符串的分割和连接字符串的分割和连接17/41示例示例2代码分析代码分析关键代码回顾关键代码回顾Split()方法:分割字符串方法:分割字符串Join()方法:连接字符串方法:连接字符串splitStrings = inputString.Split( );/ 将分割后的字符串使用下划线连接在一起将分割后的字符串使用下划线连接在一起join

12、String = string.Join(_, splitStrings); 返回值为返回值为字符串数组字符串数组字符串变量名字符串变量名参数:分隔符(参数:分隔符(char型)型)返回字符串返回字符串参数参数2:字符串数组:字符串数组18/41参数参数1:连接符连接符Format() 方法方法回顾两种输出字符串的方式回顾两种输出字符串的方式string name = 王强王强;Console.WriteLine(我的名字是我的名字是 + name + ,我的年龄是,我的年龄是 + 18);string name = 王强王强;Console.WriteLine(我的名字是我的名字是 0 ,我

13、的年龄是,我的年龄是1 , name,18);格式字符串格式字符串String 类的类的 Format() 方法用来格式化字符串方法用来格式化字符串变量列表变量列表演示示例演示示例3 3:输出个人档案输出个人档案19/41示例示例 3代码分析代码分析关键代码回顾关键代码回顾record = string.Format( 姓名:姓名:0n出生年月:出生年月:1n身高:身高:2n 血型:血型:3n星座:星座:4n最喜欢的食物:最喜欢的食物:5, name, birthday, height, bloodType, planet, favourFood);Console.WriteLine(n这是你

14、的个人档案:这是你的个人档案:);Console.WriteLine(record);参数与参数与 WritLine() 方法相似方法相似20/41Format() 的语法小结的语法小结string myString = string.Format(格式字符串格式字符串, 参数列表参数列表);string myString = string.Format (0 乘以乘以 1 等于等于 2 , 2, 3, 2*3);格式字符串格式字符串代表代表参数列表参数列表2乘以乘以3等于等于6包括占位符包括占位符x语法语法示例示例21/41格式字符串的格式项格式字符串的格式项格式字符串包括:固定文本和格式项

15、格式字符串包括:固定文本和格式项格式项的形式格式项的形式 索引索引, 对齐对齐:格式字符串格式字符串设置显示的宽度设置显示的宽度和对齐的方式和对齐的方式从从0开始,与变开始,与变量列表对应量列表对应包含格式说明符包含格式说明符一个带符号的整数,整数的大小表示数据一个带符号的整数,整数的大小表示数据的宽度,正数为右对齐,负数为左对齐的宽度,正数为右对齐,负数为左对齐Console.WriteLine(0, 23);String.Format(0, -8: F2, 23); String.Format(0,8:C2,23); 如何如何输出货币格式的数字呢?输出货币格式的数字呢?问题问题示例示例语法

16、语法22/41各种格式化定义字符各种格式化定义字符Format()方法的格式字符串中各种格式化定义字方法的格式字符串中各种格式化定义字符和示例符和示例 字符字符说说 明明示示 例例输出结果输出结果C货币格式货币格式String.Format(”0:C3”, 2000)¥2,000.000D十进制格式十进制格式String.Format(”0:D3”, 2000)2000F小数点后的位数固定小数点后的位数固定String.Format(”0:F3”, 2000)2000,000N用逗号隔开的数字用逗号隔开的数字String.Format(”0:N”, 250000)250,000.00P百分比计

17、数法百分比计数法String.Format(”0:P3”, 0.29768)29.768X十六进制格式十六进制格式String.Format(”0:X000”, 12)C23/41指定字符串的输出格式指定字符串的输出格式如何输出用户在银行储蓄存款和利息?如何输出用户在银行储蓄存款和利息?活期存款计息的计算公式活期存款计息的计算公式应获利息应获利息 = 存款金额存款金额 * 天数天数 * 年利率年利率 / 360本息合计本息合计 = 存款金额存款金额 +应获利息应获利息Console.WriteLine(姓姓 名:名: + String.Format(0,-20, name);Console.W

18、riteLine(存款金额:存款金额: + String.Format(0,20:C2, balance);Console.WriteLine(存款天数:存款天数: + String.Format(0,20:D, days);Console.WriteLine(存款年利率:存款年利率: + String.Format(0,20:P, RATE);Console.WriteLine(利息总额:利息总额: + String.Format(0,20:C2, account);Console.WriteLine(本息合计:本息合计: + String.Format(0,20:C2, total);问题

19、问题示例示例演示示例演示示例4 4:储蓄存款计算器储蓄存款计算器百分比格式百分比格式货币格式,保留货币格式,保留2位小数位小数左对齐左对齐24/41小结小结补充补充下划线处的下划线处的占位符占位符,输出五个成语,输出五个成语string yi = 一一;string er = 二二;string san = 三三;string word = string.Format( 独独 _ 无无 _,_ 心心 _ 意,垂涎意,垂涎 _ 尺,略知尺,略知 _ _,举,举_ 反反 _, yi, er, san);Console.WriteLine(word);趣味编程:看谁写的巧!趣味编程:看谁写的巧!st

20、ring yi = 一一;string er = 二二;string san = 三三;string word = string.Format( 独独0无无1,2心心1意,垂涎意,垂涎2尺,略知尺,略知01,举,举0反反2, yi, er, san);Console.WriteLine(word);现场编程现场编程25/41学员操作学员操作按格式输出用户姓名按格式输出用户姓名训练要点训练要点自定义方法的使用自定义方法的使用输入输出输入输出常用字符串处理方法常用字符串处理方法需求说明需求说明将用户姓名格式成姓和名首字母大写,其它字母将用户姓名格式成姓和名首字母大写,其它字母小写并去掉中间空格的形

21、式小写并去掉中间空格的形式比如输入为比如输入为“waNG li li”格式后为格式后为“WangLiLi”指导指导讲解需求说明讲解需求说明26/41学员操作学员操作按格式输出用户姓名按格式输出用户姓名实现思路实现思路 1. 提取用空格分隔的用户姓名提取用空格分隔的用户姓名 2. 循环提取后的用户姓名,将首字母变为大写循环提取后的用户姓名,将首字母变为大写 3. 使用使用“”连接用户姓名并返回连接用户姓名并返回难点指导难点指导使用使用Substring(index,length).ToUpper() 截取姓截取姓或名的首字母并将其转为大写或名的首字母并将其转为大写使用使用Substring(in

22、dex).ToLower()截取姓或名的截取姓或名的其它字母并将其变为小写其它字母并将其变为小写完成时间:完成时间:25分钟分钟指导指导27/41共性问题集中讲解共性问题集中讲解常见问题及解决办法常见问题及解决办法代码规范问题代码规范问题调试技巧调试技巧28/41为什么需要类型转换为什么需要类型转换编译器要编译器要确切地知道确切地知道数据的类型数据的类型int num = 123 ;整数整数字符串字符串需要类型转换!需要类型转换!编译出错编译出错29/41怎样进行隐式类型转换怎样进行隐式类型转换隐式转换:自动类型转换隐式转换:自动类型转换规则:对于数值类型,规则:对于数值类型,A的的取值范围取

23、值范围完全包含在完全包含在B内内AB30/41static void Main(string args) double score = 58.5; / 原始成绩原始成绩 int bonus = 2; / 加分加分 int sum; / 总分总分 sum = score + bonus; / 计算总分计算总分 Console.WriteLine(sum); Console.ReadLine();怎样进行显式类型转换怎样进行显式类型转换显式转换:强制类型转换显式转换:强制类型转换static void Main(string args) double score = 58.5; int bonus

24、 = 2; int sum; sum = (int)score + bonus; Console.WriteLine(sum); Console.ReadLine();明确明确告诉编译器转换类型告诉编译器转换类型注意注意:double (58.5)-int (58),精度可能丢失!,精度可能丢失!31/41int.Parse( )float.Parse( )double.Parse( )ToString()使用使用 Parse() 进行转换进行转换字符串和数值型的互相转换字符串和数值型的互相转换 必须是数字的必须是数字的有效表示形式!有效表示形式!32/41使用使用 Convert 类进行转换

25、类进行转换Convert.ToXxx(object value)Convert.ToInt32()Convert.ToSingle()Convert.ToString()double85.63string85.63int86float85.63演示示例演示示例5 5:不同类型的相互转换不同类型的相互转换33/41Parse 与与 Convert小结小结Xxx.Parse(string)Convert.ToXxx(object):注:注:Xxx表示某种类型表示某种类型字符串字符串其他类型其他类型任意类型任意类型其他类型其他类型34/41学员操作学员操作实现实现MyBank的余额查询的余额查询需求

26、说明需求说明当用户选择操作键当用户选择操作键“5”时,提示用户输入账号和密码时,提示用户输入账号和密码当输入的账号和密码正确时显示账户余额(小数点后当输入的账号和密码正确时显示账户余额(小数点后保留两位数字,);否则显示保留两位数字,);否则显示“当前账号不存在当前账号不存在”例如:例如:1000.5689显示成显示成1000.57完成时间完成时间:20分钟分钟练习练习35/41MyBank项目总结项目总结2-1项目需求总结项目需求总结u完成用户的存款、取款、转账、查询余额操作完成用户的存款、取款、转账、查询余额操作存款:账号存在,增加余额存款:账号存在,增加余额取款:减少余额取款:减少余额转账:当前账号和密码正确,且转账账号存在,当前账转账:当前账号和密码正确,且转账账号存在,当

温馨提示

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

评论

0/150

提交评论