C#从零开始学习笔记---第八天
大家好,欢迎来到我的频道,这里给大家先道个歉,这两天脚崴了,极度不适,所以昨天就没更新,今天的话确实也还挺不舒服的,所以今天我们的内容也不会有很多,希望大家谅解一下。那么接下来我们正式开始我们今天的内容。之前我记得我们大概了解了一下类,也提到也一些系统内内置的一些类。那我们今天就来着重记录一下我们常常用到的一些内置的类方法的使用。
1.Random类
Random类就是我们之前提到过的生成随机数的类。其实计算机里并没有随机数这个概念,我们使用代码生成的随机数,其实是经历一系列的算法,计算出大量的数字,从中一个一个给我们生成的一些假随机,伪随机。Random类可以根据传入的一个种子,生成一系列的随机数队列,然后需要调用next()方法,获取这个队列的下一个随机数。
我们创建随机数可以通过使用固定种子和不使用种子来进行创建。当我们使用固定种子的时候,在生成随机数的时候能够确保程序每次生成的随机数都相同,而不使用种子的时候,就不能保证他每次生成的随机数相同了,我们来看一下代码:
Random random = new Random(10); // 种子=10 int num = random.Next(10); Console.WriteLine(num); Random random1 = new Random(10); // 种子=10 int num1 = random1.Next(10); Console.WriteLine(num1);在上面的代码里我们定义了一个实例random,同时设置了种子为10,这时我们就能生成次序一模一样的序列,只不过每个序列可能不一样,举个比喻,种子相当于我们制作一杯奶茶的流程,这个流程是不变的,第一步是放珍珠,第二步是放果粒,第三是布丁,第四是芋圆,这些流程都是固定的,怎么都不会变,而我们生成的随机数,就是在这些步骤的某一流程里把这个东西取了出来,就像我下面的输出了两个num,他就是在同一步骤取出来的,所以他的结果是不变的一摸一样的。我们可以来看一下结果:
我们再来看看不加种子的情况:
Random random2 = new Random(); int num2 = random2.Next(10); Console.WriteLine(num2); int num3 = random2.Next(10); Console.WriteLine(num3);结果如下:
我们能发现,不加种子的情况下,他的运行结果是纯随机的,不会相同。
2.DateTime类
DateTime类其实是一个机构体,之所以放在这还是因为他的调用方式和我们的类差不多。这是一个对时间进行操作的数据类型,他提供了一些列方法和属性来处理日期和时间操作。具体我们来看看代码就可以了。
2.1获取当前时间
//1.获取当前时间 DateTime time= DateTime.Now; Console.WriteLine(time);2.2获取时间的结构
//2.获取时间结构 Console.WriteLine(time.Year); Console.WriteLine(time.Day); Console.WriteLine(time.Hour); Console.WriteLine(time.Minute); Console.WriteLine(time.Second); Console.WriteLine(time.Millisecond);//毫秒 Console.WriteLine(time.DayOfYear); Console.WriteLine(time.DayOfWeek);2.3 时间转成字符串
//3.时间转成字符串 Console.WriteLine(time.ToString("D")); Console.WriteLine(time.Year+"年"+time.Month+"月"+time.Day+"日");2.4一些快捷操作
// yyyy完整年2026(重点) //yy后俩位26 Console.WriteLine(time.ToString("yyyy")); //2026 //MM俩位数的月份05(重点)//MMMM五月5月//MMM Console.WriteLine(time.ToString("MM"));//05 //dd(重点)21 //ddd周四 //dddd 星期四 Console.WriteLine(time.ToString("dd"));//21 //HH 24小时制 //hh 12小时制 Console. WriteLine (time. ToString ("HH"));2.5日期的计算
//日期计算 DateTime t1= DateTime.Now; Console.WriteLine("==="+t1); //addYears() 在原先的基础之上加上x年 ,生成一个新的日期,不会在原先的日期进行修改 t1=t1.AddYears(-1); Console.WriteLine("===" + t1); //同理,addMonths()在原先基础上加上x月,addDays()在原先的基础上加上x天 //时间间隔 TimeSpan span=new DateTime(2026,6,19)-DateTime.Now; Console.WriteLine(span.Days);//算出结果 Console.WriteLine(span.Hours); Console.WriteLine(span.Minutes); Console.WriteLine(span.Seconds);3.string类的API
字符串大家都再熟悉不过了,我们的老朋友了,今天来学习一下他的一些API。
3.1Concat() 拼接字符串
string a = "Kyrie"; string b = "Irving"; Console.WriteLine(string.Concat(a,b));3.2Contains() 判断参数字符串 是否出现在源字符串中
//出现 返回true 不出现返回 false bool b = "wuyifan".Contains("吴"); Console.WriteLine(b);3.3Join()把后面字符串按照第一个参数符号进行连接
string ss = string.Join("-", "a", "b", "c"); Console.WriteLine(ss);3.4 大小写字母的转换
//4ToLower(转成小写的 string sss = "ABCD"; Console.WriteLine(sss.ToLower()); //5 ToUpper转成大写的 string aa = "abc"; Console.WriteLine(aa.ToUpper());3.5字符串的复制copyto
aa = "ef"; char[] chars = new char [] {'a','b' }; aa.CopyTo(0, chars, 0, 3); for(int i = 0; i < chars.Length; i++) { Console.WriteLine(chars[i]+""); }3.6Replace() 替换字符
string s2 = "吴亦凡"; Console.WriteLine(str2.Replace("吴", "*")); Console.WriteLine(str2.Replace("亦凡", "**")); Console.WriteLine(str2.Replace("吴亦凡", "***"));3.7 Insert() 在指定的索引位置插入字符串 生成新的字符串
string st4 = "132"; onsole.WriteLine(st4.Insert(0, "吴亦凡"));3.8 Remove() 从索引为5的位置开始 删除后面所有的字符,返回删除后的字符串
string n1 = "吴亦凡,罗志祥,李云迪"; Console.WriteLine(n1.Remove(5)); Console.WriteLine(n1.Remove(2,5));//从索引为2的位置开始,删除后面5个字符,返回删除后的字符串3.9 StartsWith() 判断源字符串 是否以参数字符串开头
string str2 = "加拿大"; Console.WriteLine(str2.StartsWith("拿大"));3.10 EndsWith() 判断源字符串 是否以参数字符串结尾
string str2 = "加拿大"; Console.WriteLine(str2.EndsWith("大"));好了,今天就先到这吧,等主播调整好状态后争取给大家带来更好的内容,谢谢大家的翻阅,再见!!!
