基础加强第三天 练习总结

5、数字转大写案例

#region 练习:把123转换为:壹贰叁。Dictionary<char,char>

//提示用户输入

Console.WriteLine("请输入一个数");

//接受用户的输入

string number = Console.ReadLine();

string str = "1壹 2贰 3叁 4肆 5伍 6陆 7柒 8捌 9玖 0零";

Dictionary<int, char> dic = new Dictionary<int, char>();

//去掉字符串中的空格

string[] parts = str.Split(new char[]{‘ ‘},StringSplitOptions.RemoveEmptyEntries);

//加入键值对集合中

for (int i = 0; i < parts.Length; i++)

{

dic.Add(parts[i][0],parts[i][1]);

}

StringBuilder sb = new StringBuilder();

for (int i = 0; i < number.Length; i++)

{

sb.Append(dic[number[i]]);

}

Console.WriteLine(sb.ToString());

Console.ReadKey();

#endregion

#region  第二种方法

string str = "1壹 2贰 3叁 4肆 5伍 6陆 7柒 8捌 9玖 0零";

Dictionary<char, char> dic = new Dictionary<char, char>();

//去除空格

string[] number = str.Split(new []{‘ ‘},StringSplitOptions.RemoveEmptyEntries);

//将数组中的这十项都拿出来

for (int i = 0; i < number.Length; i++)

{

//将这十项添加到键值对字典中

//因为键不能重复,所以添加判断

if (!dic.ContainsKey(number[i][0]))

{

dic.Add(number[i][0],number[i][1]);

}

}

//提示用户输入

Console.WriteLine("请输入数字");

string txt=Console.ReadLine();

for (int i = 0; i < txt.Length; i++)

{

//判断当前字典中是否包含用户输入的数字

if (dic.ContainsKey(txt[i]))

{

//如果有这个值,那么久替换成大写    dic[txt[i]]这个代表当前这个键的值,打印输出

Console.Write(dic[txt[i]]);

}

else

{

//否则原样输出

Console.Write(txt[i]);

}

}

Console.ReadKey();

#endregion

#region 练习四 计算字符串中每种字母出现的次数(面试题)。 “Welcome ,to Chinaworld”,不区分大小写,打印“W2”“e 2”“o 3”……

string str = "Welcome ,to Chinaworld";

str = str.ToLower();

Dictionary<char, int> dic = new Dictionary<char, int>();

for (int i = 0; i < str.Length; i++)

{

if (char.IsLetter(str[i]))

{

if (!dic.ContainsKey(str[i]))   //如果字典中不包含这个字符

{

//则添加这个字符,并且该字符出现的次数是1次

dic.Add(str[i], 1);

}

else

{

//键对应的值次数加1

dic[str[i]]++;

}

}

}

foreach (KeyValuePair<char,int> item in dic)

{

Console.WriteLine("字母{0}出现{1}次",item.Key,item.Value);

}

Console.ReadKey();

#endregion

6、文件操作

//写入文件

//using (FileStream fs=new FileStream("5.txt",FileMode.OpenOrCreate,FileAccess.Write))

//{

//    string str = "今天天气好晴朗";

//    byte[] buffer = System.Text.Encoding.UTF8.GetBytes(str);

//    fs.Write(buffer,0,buffer.Length);

//}

//Console.WriteLine("OK");

//Console.ReadKey();

//读取文件

using (FileStream fs=new FileStream("5.txt",FileMode.OpenOrCreate,FileAccess.Read))

{

byte[] buffer=new byte[fs.Length];

fs.Read(buffer,0,buffer.Length);

string msg = System.Text.Encoding.UTF8.GetString(buffer);

Console.WriteLine(msg);

}

Console.ReadKey();

7、工资翻倍

#region 练习3:通过StreamReader和StreamWrite对工资文件进行操作

//将文件中的工资翻倍再写入到文件中

using (StreamReader sr=new StreamReader("salary.txt",Encoding.Default))

{

using (StreamWriter sw=new StreamWriter("a.txt",false,Encoding.Default))

{

string line;

while ((line=sr.ReadLine())!=null)

{

string[] msg = line.Split(new char[]{‘|‘},StringSplitOptions.RemoveEmptyEntries);

string str = string.Format("{0}|{1}",msg[0],Convert.ToInt32(msg[1])*2);

sw.Write(str);

}

}

}

Console.WriteLine("ok");

Console.ReadKey();

#endregion

8、Path类

//1.

//string lujing = @"c:\1.txt";

////主要是更该后缀名

//string msg = Path.ChangeExtension(lujing,".rar");

//Console.WriteLine(msg);

//Console.ReadKey();

//2.合并路径

//string str1 = @"C:\Program Files (x86)\";

//string str2 = @"Microsoft SQL Server\100\SDK\Assemblies";

//string msg = Path.Combine(str1,str2);

//Console.WriteLine(msg);

//Console.ReadKey();

//3.查找某个文件所在的路径

string str = @"C:\Program Files (x86)\Microsoft SQL Server\100\SDK\Assemblies";

string msg = Path.GetDirectoryName(str);

Console.WriteLine(str);

Console.ReadKey();

//Path.GetExtension();//返回扩展名

//Path.GetFileName();//获得文件名

//Path.GetFullPath();//返回指定字符串的绝对路径

时间: 2024-10-09 02:19:29

基础加强第三天 练习总结的相关文章

5.C#WinForm基础登陆失败三次退出系统

目标: 登陆界面,登陆错误三次退出程序.假设用户名密码是admin.888888,不区分大小写,(易错点:局部变量与类变量) 局部变量每次运行完毕变量的值都会被销毁,下次再运行,会重新初始化.       而类字段,只要是一个对象,那么只要对象不销毁,就会一直保持对象的字段值. 退出程序:this.close();或者Application.Exit(); 文本框的集中模式:Mutiline(多行).PasswordChar(密码) string Datatime().ToString()(+3

C语言基础课程 第三课 ADB(Android Debug Bridge)的使用

?? C语言基础课程 第三课 ADB(Android Debug Bridge)的使用 由于前面已经发布过Linux的博客了 基础班将Linux基础命令就不单独发表博客了,本节课主要就是利用adb连接手机进行一个Linux基本命令的复习.而且熟悉手机的底层运作,不用界面操作照样也能安装软件  卸载软件与pc传数据 目  录 1       将android设备通过USB连接到PC. 3 2       查看当前设备... 3 3       进入设备shell. 4 4       执行shel

javascript基础学习(三)

javascript之运算符 学习要点: 表达式 运算符:一元运算符,算术运算符,关系运算符,逻辑运算符,*位运算符,赋值运算符 一.表达式 表达式有常量表达式,变量表达式,复合表达式. 二.算术运算符 一元:+(正号).-(负号).++.—— 二元:*./.%.+.- 三.关系运算符 ==.=== ps:等同运算符比相等运算符要求更为严格,等同运算符只有在两个操作数类型相同,并且值也相同的情况下才会返回true. <.<=.>.>= instanceof运算符.       in

web基础知识(三)关于ajax,Jquery传值最基础东西

今天补充一下两个小功能,一个是关于radio单选框的情况,如何在前面选了后,传到后台,编辑修改的时候再次传回来,并且在当时选的那个上:再一个就是关于添加小标签的时候添加接着弹出在下面,并点击出现删除. 一:radio 1 <div class="newlylist"> 2 <div class="newlyhead">图示商品:</div> 3 <div class="newlycontent">&

spring基础知识(三)——aop

spring基础知识(三)--aop面向切面编程 1.概念术语 aop面向切面编程(Aspect ariented Programming) 在开始之前,需要理解Spring aop 的一些基本的概念术语(总结的个人理解,并非Spring官方定义): 切面(aspect):用来切插业务方法的类. 连接点(joinpoint):是切面类和业务类的连接点,其实就是封装了业务方法的一些基本属性,作为通知的参数来解析. 通知(advice):在切面类中,声明对业务方法做额外处理的方法. 切入点(poin

Java基础知识的三十个经典问答

Java基础知识的三十个经典问答 1.面向对象的特点 抽象: 抽象是或略一个主题中与当前目标的无关的因素,一边充分考虑有关的内容.抽象并不能解决目标中所有的问题,只能选择其中的一部分,忽略其他的部分.抽象包含两个方面:一是过程抽象:一是数据抽象. 继承 继承是一种联接类的层次模型,允许和鼓励类的重用,提供了一种明确的共性的方法.对象的一个新类可以从现有的类中派生,这叫做类的继承.心累继承了原始类 的特性,新类称为原始类的派生类或者是子类,原始类称为新类的基类或者父类.子类可以从父类那里继承父类的

C#编译基础知识(三)

本文章我们将来重点介绍强命名程序集,强命名程序集的出现其实是为解决版本控制问题,比如说,在新版程序集发布后,我们希望在系统中对旧程序集的引用继续保留,而有些地方又可以引用新的程序集,再比如说不同的公司提供了不同功能的程序集,这些类库存放在一个公共目录,有时候可能会出现名称相同的情况.使用强命名程序集可以解决这些问题,一个强命名的程序集是靠公钥标示.程序集版本号.区域属性.程序集名称这四个属性来唯一标识的,这样一来,新发布的库文件版本与前面发布的不同,不同的版本引用可以在元数据里面标识,相互不会受

python基础语法(三)

--------------------------------------------接 Python 基础语法(二)-------------------------------------------- 七.面向对象编程 python支持面向对象编程:类和对象是面向对象编程的两个主要方面,类创建一个新的类型,对象是这个类的实例. 对象可以使用普通的属于对象的变量存储数据,属于对象或类的变量被称为域:对象也可以使用属于类的函数,这样的函数称为类的方法:域和方法可以合称为类的属性. 域有两种类

EnjoyingSoft之Mule ESB基础系列第三篇:Mule message structure - Mule message结构

目录 1. 探索Mule Message结构 2. Mule Message的Payload 3. Mule Message的Property 4. Mule Message的Attachment 5. Mule的Variable 6. 使用Java操作Mule Message Mule ESB是一个使用Java语言编写的开源企业服务总线,企业服务总线英文Enterprise Service Bus,简称ESB.其相关源代码也托管在GitHub上,可以在https://github.com/mu

IOS基础UI之(三)手写UI和storyboard方式实现图片移动和缩放

手写UI是最早进行UI界面布局的方法,优点是灵活自由,缺点是使代码看起来比较长.平时学习的时候可以多尝试手写ui,这样会更深入熟悉控件.storyboard开发效率相对比较高.实际开发中看情况而定!! 下面用这两种方式分别实现图片移动和缩放. 功能描述: 1. 界面布局 2.点击相应的按钮,对显示的图片移动.缩放. 效果如下:    掌握点: 一:熟悉代码的描述UIButton属性 1.UIButton状态 UIControlStateNormal          // 正常状态 UICont