C# 课堂总结4-类(常用的类)
一、string类
1、
str.Length:字符串的长度 *****
str[索引号]
2、
str.Trim():去除左右两边的空格 *****
str.TrimStart():去掉左边的空格
str.TrimEnd():去掉右边的空格
//eg.1 x.Trim();去掉字符串前后的空格,TrimStart()去掉前面的空格,TrimEnd()去掉后面的空格
static void Main1(string[] args)
{
////string x = Console.ReadLine();
string x = " I love C#! ";
int i = x.Length;//获取字符串长度,返回一个int类型的值
x = x.Trim();//去除字符串中前后的空格 ,不包括中间的
Console.WriteLine(i);
Console.Write(x);
}
3、
str.ToLower():大写转小写
str.ToUpper():小写转大写
4、
str.StartsWidth("字符串"):是否以括中的字符串开头,返回(bool类型值)。
str.EndsWidth("字符串"):是否以括号中的字符串结尾,返回(bool类型值)。
str.Contains("字符串"):是否包括括号中的字符串,返回(bool类型值)。
eg.1
1 static void Main(string[] args)
2 {
3 string s = "abidfje";
4 bool i = s.Contains("a");
5 Console.WriteLine(i);//i="Ture"
6
7 bool j = s.StartsWith("c");
8 Console.WriteLine(j);//j="False"
9
10 bool k = s.EndsWith("e");
11 Console.WriteLine(k.ToString());//k="Ture"
12 }
int i=str.IndexOf("子串"):返回子串在字符串中第一次出现的位置。
int i=str.LastIndexOf("子串"):返回子串在字符串中最后一次出现的位置。
以上两函数,如果在字符串中找不到相应的子串,返回-1
eg.1
1 static void Main(string[] args)
2 {
3 string s = "abidfje";
4 int i = s.IndexOf("a");
5 Console.WriteLine(i);//i=1
6 int j = s.LastIndexOf("c");
7 Console.WriteLine(j);// j=-1
8 }
str.Substring():截取字符串 ******
1 //eg.4 从身份证号中截取日期 x.substring(m)从第m个开始截取,截取到字符串尾
2 //x.substring(m,n),从第m位截取n个
3 static void Main4(string[] args)
4 {
5 Console.WriteLine("请输入你的身份证号:");
6 string id=Console.ReadLine();
7
8 string nian = id.Substring(6, 4);//从第6位截取4个
9 string yue = id.Substring(10, 2);//从第10位截取2个
10 string ri = id.Substring(12, 2);//从第12位截取2个
11
12 Console.WriteLine("你的出生日期是:{0}年{1}月{2}日。",nian,yue,ri);
13 }
Replace(string old,string new):(string)把字符串的old串换成new串
*Split('字符'):(string[])按照括号中的字符把字符串拆开成数组中的元素。
二、Math类
Math.Round(x,n); 四舍五入,X是数据,N是保留小数点后N位.
Math.Round(x);将x舍入为最接近其的整数
Math.Ceiling(n);取大于该小数的最小整数
Math.Floor(n);取小于该小数的最大整数
Math.Sqrt(a);开平方,平方根
Math.Pow(2,4); 求2的4次方
eg
1 static void Main(string[] args)
2 {
3 int i = 20;
4 double j = 23.5, k = 23.4, m = 23.456674;
5
6 double n = Math.Round(m, 3);
7 Console.WriteLine(n); //n=23.457;
8
9 double b = Math.Round(m, 4);
10 Console.WriteLine(b);//b=23.4567;
11
12
13 int a = (int)Math.Round(j);
14 Console.WriteLine(a);//a=24;
15
16 int c =(int) Math.Floor(j);
17 Console.WriteLine(c);//c=23;
18
19 int d = (int)Math.Ceiling(j);
20 Console.WriteLine(d);//d=24;
21 }
三、datetime类
构造方法:DateTime dt = new DateTime([1990,2,5);
DateTime dt = new DateTime(); //?
DateTime dt = new DateTime(1990, 2, 5);//?
DateTime dt = new DateTime(1990, 2, 5, 3, 44, 25);//?
当前时间:
DateTime dt = DateTime.Now;
日期时间对象的数据:
d.Year; 提取年份
d.Month; 提取月份
d.Day; 提取日期
d.Hour; 提取小时
d.Minute; 提取分钟
d.Second; 提取秒
d.Millisecond; 提取毫秒
d.DayOfYear; 获取日期是该年中第几天
d.DayOfWeek; 星期几
System.TimeSpan da = new TimeSpan(int days,int hours,int minutes,int seconds);//将新的系统时间初始化为指定的天数,小时数,分钟数和秒数。
ToString("yyyy年MM月dd日 hh时mm分ss秒") 按”年月日时分秒“表示出来
日期时间对象的函数:
AddYears(int num)
AddMonths(int num)
AddDays(int num)
AddHours(int num)
AddMinutes(int num)
AddSeconds(int num)
日期时间型数据可以直接相减,返回两个日期之间差的天数和时间。
ToString(格式字符串)函数:把日按照某种格式显示出来。
格式字符串:
yyyy——四位数字的年份
yy——两位数字的年份
MM——两位数字的月分,不足两位添0
M——1-2位数字的月份
dd——两位数字的天,不足两位添0
d——1-2位数字的天。
hh——12小时制
HH——24小时制
mm——分
ss——秒
ms——毫秒。
例如:
DateTime dt = DateTime.Now;
Console.WriteLine(dt.ToString("yyyy年MM月dd日hh时mm分ss秒"));
不止是日期时间型数据的ToString()函数中可以放格式化字符中。整数,小数的ToString()中也可以放格式化字符串。
小数和整数类型的格式化符号主要是有四个。
.——小数点
,——整数部份三位的分隔符
#——任意位数字,有几位显示几位
0——至少一位数字,不足则补0.
例:
#.00——必须保留两位小数。
四、例题
eg.1 定闹钟
1 //eg.7 每天的特定时间都会响
2 static void Main7(string[] args)
3 {
4 Console.WriteLine("请输入要提醒的时间点:");
5 string s1 = Console.ReadLine();
6 //string timenow = DateTime.Now.ToString("yyyy/MM/dd");
7 string s2 = DateTime.Now.ToString().Substring(0,9);
8 string newtime = s2 + s1;
9 //Console.WriteLine(newtime);
10
11 //string newtime = timenow + " " + s1;
12
13 DateTime nt = Convert.ToDateTime(newtime);
14
15 while (true)
16 {
17 Console.Clear();//此句必须在输出之前,若之后才输出一次就清一次,就看不到结果!
18 Console.WriteLine(DateTime.Now.ToString());
19
20 if (DateTime.Now.ToString().Equals(nt.ToString()))//tostring 应该写进格式去
21 {
22 Console.WriteLine("\a\a\a\a\a\a.....时间到了!");
23 Console.WriteLine("你需要延长一段时间么? y/n");
24 string aj = Console.ReadLine();
25
26 if (aj.ToLower() == "y")
27 {
28 nt = nt.AddSeconds(10);
29 }
30 else if (aj.ToLower() == "n")
31 {
32 break;
33 }
34 else
35 {
36 Console.WriteLine("你输入的有误!");
37 break;
38 }
39 }
40
41 Thread.Sleep(1000);//此处比较好的做法就是放到程序的尾端(但具体延时情况具体分析)
42
43 }
eg.2 测试身价
1 //eg.8 测试姓名身价小游戏
2 static void Main8(string[] args)
3 {
4 while (true)
5 {
6 Console.WriteLine("请输入你的姓名:");
7 string r1 = Console.ReadLine();
8 int seed = 0;
9
10 if (r1.Length == 2)
11 {
12 seed = (int)(Convert.ToChar(r1.Substring(0, 1))) + (int)(Convert.ToChar(r1.Substring(1, 1)));
13 }
14 else
15 {
16 seed = (int)(Convert.ToChar(r1.Substring(0, 1))) + (int)(Convert.ToChar(r1.Substring(1, 1)))
17 + (int)(Convert.ToChar(r1.Substring(2, 1)));
18 }
19
20 Random r = new Random(seed);
21 int t = r.Next(5000000) + 500000;
22 Console.WriteLine("你的身价是:{0}", +t);
23 }
24 }