C#语言——类

C#——类

一、String 类

系统内置的处理字符串类型的函数方法类。方便我们对字符串类型进行一系列的处理。

1、Length:获取字符串的长度,返回一个int类型的值

string x=Console.ReadLine();//小string是大String的快捷方式

int i = x.Length; Console.Write(i);

Console.ReadLine();

2、.Trim()     去掉开头以及结尾的空格;.TrimStart()   去掉字符串开头的空格;.TrimEnd()       去掉字符串后面的空格。

3、.ToUpper() 全部大写;.ToLower()    全部小写。

4、Substring(起始位置,截取长度);Substring(起始位置)  只写起始位置,可以截取到尾。

注:字符串的编码索引是从0开始的。

5、IndexOf("字符串")    返回第一次出现此字符串的索引,查找开头第一次出现的索引号,返回值为-1.表示没有找到。

LastIndexOf("字符串")        返回最后一次出现此字符串的索引。

6、StartsWith("字符串")        是否以此字符串为开头,返回True或False。

EndsWith("字符串")   是否以此字符串为结尾,返回True或False。

Contains("字符串")     是否包含此字符串。返回True或者False。

7、Replace("老字","新字")   将老字用新字替换,即替换所有符合指定段的字符串条件的字符串(查找替换功能)。

综上例题:判断邮箱格式是否正确:1.有且只能有一个@;2.不能以@开头;[email protected]之后至少有一个.;[email protected]和.不能靠在一起;5.不能以.结尾。

法一:      Console.Write("请输入您的邮箱账号:");

string mail = Console.ReadLine();

if (mail.Contains("@"))

{

int a = mail.IndexOf("@");

int b = mail.LastIndexOf("@");

if (a == b)

{

if (!mail.StartsWith("@"))

{

string mail1 = mail.Substring(a);

if (mail1.Contains("."))

{

//[email protected]

if (mail1.IndexOf(".") != 1 && mail.Substring(a - 1, 1) != ".")

{

if (!mail.EndsWith("."))

{

Console.WriteLine("输入的邮箱格式正确!您输入的账号是:" + mail);

}

else

{

Console.WriteLine("格式错误!");

}

}

else

{

Console.WriteLine("格式错误!");

}

}

else

{

Console.WriteLine("格式错误!");

}

}

else

{

Console.WriteLine("格式错误!");

}

}

else

{

Console.WriteLine("格式错误!");

}

}

else

{

Console.WriteLine("格式错误!");

}

Console.ReadLine();

法二、      Console.Write("请输入一个邮箱:");

string s = Console.ReadLine();

bool j = s.Contains("@");

int a = s.IndexOf("@");

int b = s.LastIndexOf("@");

bool i = true;

bool c = s.StartsWith("@");

string d = s.Substring(a);

bool e = d.Contains(".");

int f = s.IndexOf(".");

int g = s.LastIndexOf(".");

bool h = s.EndsWith(".");

if (j == i && a == b && f != a - 1 && g != b - 1 && c != i && e == i && h != i)

{

Console.WriteLine("格式正确");

}

else

{

Console.WriteLine("格式错误");

}

Console.ReadLine();

二、Math 类

●Ceiling()            取上线

●Floor()                     取下线

●Math.PI                    圆周率

●Math.Sqrt()        平方根

●Math.Round()            四舍五入(注意奇数偶数下.5不一样的结果)

三、随机数类:Random

需要使用随机数的时候需要先初始化

Random ran = new Random();//初始化

int a = ran.Next(10);//返回0-9范围内的数

Console.WriteLine(a);

综上例题:验证码:随机出四位验证码,A~Z    a~z    0~9,不区分大小写。

法一、      string ss = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

Random s = new Random();

int a = s.Next(62);

int b = s.Next(62);

int c = s.Next(62);

int d = s.Next(62);

string aa = ss.Substring(a, 1);

string bb = ss.Substring(b, 1);

string cc = ss.Substring(c, 1);

string dd = ss.Substring(d, 1);

string ee = aa + bb + cc + dd;

Console.WriteLine("验证码是:" + ee);

Console.Write("请对照输入验证码:");

string shu = Console.ReadLine();

if (shu.ToUpper() == ee.ToUpper())

{

Console.WriteLine("输入正确!");

}

else

{

Console.WriteLine("输入错误!");

}

Console.ReadLine();

法二、      string ss = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

Random s = new Random();

string yan = "";

for (int i = 1; i <= 4; i++)

{

int a = s.Next(62);

yan += ss.Substring(a);

}

Console.WriteLine("验证码是:" + yan);

Console.Write("请对照输入验证码:");

string shu = Console.ReadLine();

if (shu.ToUpper() == yan.ToUpper())

{

Console.WriteLine("输入正确!");

}

else

{

Console.WriteLine("输入错误!");

}

Console.ReadLine();

四、DateTime类  获取时间

1、●若需要使用,首先需要初始化

DateTime dt = new DateTime();

Console.Write(" 请输入一个日期时间:****/**/** **:**:**");

dt = DateTime.Parse( Console.ReadLine());

●若直接获取当前时间,不用进行初始化

DateTime dt1 = DateTime.Now;

Console.WriteLine(dt1);

●获取这一天是星期几 DayOfWeek d = dt.DayOfWeek;获取到的是英文。若想用中文,先d.ToString(),然后根据英文打印出中文。

●DayOfYear 获取日期是当年的第几天,返回int类型值

2、在控制台输入的格式必须符合DateTime的格式才能正确接收

3、s = dt.ToString("yyyy年MM月dd日hh时mm分ss秒");

yyyy MM dd hh mm ss 均为代位符

yyyy年,MM月(必须大写),dd日,hh时,mm分(小写),ss(秒)

4、DateTime可以增加或者减去相应的时间

Add()             增加或者减去一定的时间间隔

AddYears()   增加或减去年份

AddMonths()        增加或减去月份

AddDays()    增加或减去天数

以此类推。

注意,加减天数,小时数是利用double类型。其他都是int类型

5、TimeSpan

TimeSpan time = new TimeSpan(10, 10, 10, 10);

Console.WriteLine(dt1.Add(time));

6、 获取年                dt.Year

获取月                dt.Month

获取日                dt.Day

获取小时            dt.Hour

获取分                dt.Minute

获取秒                dt.Second

Console.WriteLine(dt1.Hour);

DayOfWeek dw = dt1.DayOfWeek;

switch (dw.ToString())

{

case "Monday":

Console.WriteLine("星期一");

break;

}

例题:输入两个时间日期,计算出相差多少天(TotalDays)

Console.Write("请输入你们恋爱的时间:");

DateTime dt = DateTime.Parse(Console.ReadLine());

DateTime dt1 = DateTime.Now;

Console.WriteLine((dt1-dt).TotalDays);

五、try   catch:异常保护语句

Console.Write("请输入一个整数:");

try//尝试

{

int a = int.Parse(Console.ReadLine());

Console.WriteLine(a);

}

catch//若try里面的语句有问题,直接跳到catch执行

{

Console.WriteLine("程序出现错误!");

}

finally//不管对与错,都要执行

{

Console.WriteLine("感谢您的使用!");

}

Console.WriteLine("感谢您的使用!");

例题:判断输入的年月日格式是否正确

法一、DateTime

Console.Write("请按照格式正确输入年月日(yyyy/MM/dd)");

string td = Console.ReadLine();

DateTime dt = new DateTime();

dt = DateTime.Parse(td);

string s;

s = dt.ToString("yyyy年MM月dd日");

string y = s.Substring(0, 4);

string M = s.Substring(5, 2);

string d = s.Substring(8, 2);

int iy = int.Parse(y);

int iM = int.Parse(M);

int id = int.Parse(d);

int rm = 1;

if (iy % 100 == 0)

{

if (iy % 400 == 0)

{

rm = 4;

}

}

else if (iy % 4 == 0)

{

rm = 4;

}

if (iy > 1 && iy <= 9999 && iM >= 1 && iM <= 12 && id >= 1 && id <= 31)

{

if (iM == 4 || iM == 6 || iM == 9 || iM == 11 && id >= 30)

{

Console.Write("输入错误");

}

else if (iM == 2 && id == 29 && rm != 4)

{

Console.Write("输入错误!:" + iy + "年不是闰年,2月没有29号");

}

else if (iM == 2 && id >= 29)

{

Console.Write("输入错误");

}

else

{

Console.WriteLine(s);

Console.WriteLine("输入正确!");

}

}

Console.ReadLine();

法二、try-catch异常语句

Console.Write("请输入日期时间:");

try

{

DateTime dt = DateTime.Parse(Console.ReadLine());

Console.WriteLine("您输入的日期时间格式正确!");

}

catch

{

Console.WriteLine("您输入的日期时间有误!");

}

Console.WriteLine("感谢您的使用!再见!");

Console.ReadLine();

综合例题:1、输入一个1-100内的整数,若输入错误请重新输入

法一、      Console.Write("请输入一个数:");

int a = int.Parse(Console.ReadLine());

for (int i = 1; ; i++)

{

if (a <= 100 && a >= 1)

{

Console.WriteLine(a);

break;

}

else

{

Console.Write("请重新输入一个数:");

a = int.Parse(Console.ReadLine());

}

}

Console.ReadLine();

法二        Console.Write("请输入一个数:");

int a = int.Parse(Console.ReadLine());

for (int i = 0; i<1; i++)

{

if (a <= 100 && a >= 1)

{

Console.WriteLine(a);

}

else

{

Console.Write("请重新输入一个数:");

a = int.Parse(Console.ReadLine());

i--;

}

}

Console.ReadLine();

2、输入年月日,判断日期格式是否正确,不正确,重新输入。

Console.Write("请输入年份:");

int a = int.Parse(Console.ReadLine());

for (int i = 0; i < 1; i++)

{

if (a >= 0 && a <= 9999)

{

Console.Write("请输入月份:");

int b = int.Parse(Console.ReadLine());

for (int j = 0; j < 1; j++)

{

if (b > 0 && b <= 12)

{

Console.Write("请输入日:");

int c = int.Parse(Console.ReadLine());

for (int k = 0; k < 1; k++)

{

if (c > 0 && c <= 31)

{

if (b == 1 || b == 3 || b == 5 || b == 7 || b == 8 || b == 10 || b == 12)

{

Console.WriteLine("您输入的日期格式正确!输入的日期是:{0}-{1}-{2}", a, b, c);

}

else if (b == 4 || b == 6 || b == 9 || b == 11)

{

for (int l = 0; l < 1; l++)

{

if (c <= 30)

{

Console.WriteLine("您输入的日期格式正确!输入的日期是:{0}-{1}-{2}", a, b, c);

}

else

{

Console.Write("请重新输入日份:");

c = int.Parse(Console.ReadLine());

l--;

}

}

}

else

{

if (c <= 28)

{

Console.WriteLine("您输入的日期格式正确!输入的日期是:{0}-{1}-{2}", a, b, c);

}

else

{

for (int r = 0; r < 1; r++)

{

if (c == 29)

{

for (int t = 0; t < 1; t++)

{

if ((a % 4 == 0 && a % 100 != 0) || a % 400 == 0)

{

Console.WriteLine("您输入的日期格式正确!输入的日期是:{0}-{1}-{2}", a, b, c);

}

else

{

Console.Write("请重新输入年份:");

a = int.Parse(Console.ReadLine());

t--;

}

}

}

else

{

Console.Write("请重新输入日份:");

c = int.Parse(Console.ReadLine());

r--;

}

}

}

}

}

else

{

Console.Write("请重新输入日份:");

c = int.Parse(Console.ReadLine());

k--;

}

}

}

else

{

Console.Write("请重新输入月份:");

b = int.Parse(Console.ReadLine());

j--;

}

}

}

else

{

Console.Write("请重新输入年份:");

a = int.Parse(Console.ReadLine());

i--;

}

}

Console.ReadLine();

时间: 2024-10-10 19:40:20

C#语言——类的相关文章

模块的封装之C语言类的继承和派生

[交流][微知识]模块的封装(二):C语言的继承和派生 在模块的封装(一):C语言的封装中,我们介绍了如何使用C语言的结构体来实现一个类的封装,并通过掩码结构体的方式实 现了类成员的保护.这一部分,我们将 在此的基础上介绍C语言类的继承和派生.其实继承和派生是一个动作的两种不同角度的表达 .当我们继承了一个基类而创造了一个新类时,派生的概念就诞生了.派生当然是从基类派生的.派生出来的类当然是继承了基类的 东西.继承和派生不是一对好基友,他们根本就是一个动作的两种不同的说法,强调动作的起始点的时候

模块的封装之C语言类的封装

[微知识]模块的封装(一):C语言类的封装 是的,你没有看错,我们要讨论的是C语言而不是C++语言中类的封装.在展开知识点之前,我首先要 重申两点: 1.面向对象是一种思想,基本与所用的语言是无关的.当你心怀面向对象时,即使使用QBasic也能写 出符合面向对象思想的代码,更不要说C语言了.举一个反例,很多人初学C++的时候,并没有掌 握面向对象的思想,活生生的把类当结构体来使用的也不在少数吧. 2.面向对象的最基本的出发点是“将数据以及处理数据的方法封装在一起”,至于继承.派生.多态之类 的则

算法程序设计题语言类笔记

1. 求幂 #include<math.h> //头文件 pow(a,b); //a^b 2. bool #include<stdbool.h> //C中使用bool型需要加入头文件 3. 字符串操作相关 #include<string.h> //头文件 char a[20],b[20]; strcpy(a,b); //把字符串b拷贝到a中 length=strlen(); //求长度 strcmp(a,b); //字符串比较,将a和b中的字符逐个比较,相同继续比较下一

php获取设置用户访问页面语言类

php实现获取及设置用户访问页面语言类,可实现获取/设置用户访问的页面语言,如果用户没有设置访问语言,则读取Accept-Language. 一个php获取及设置用户访问页面语言类,具体分析:该实例User Language Class 获取/设置用户访问的页面语言,如果用户没有设置访问语言,则读取Accept-Language. 根据用户选择的语言显示对应的页面(英文,简体中文,繁体中文)UserLang.class.php类文件如下: <?php /** User Language Clas

OC语言类的本质和分类

OC语言类的深入和分类 一.分类 (一)分类的基本知识  概念:Category  分类是OC特有的语言,依赖于类. 分类的作用:在不改变原来的类内容的基础上,为类增加一些方法. 添加一个分类: 文件结构图: 在分类中添加一个方法 Study方法的实现 测试程序: (二)分类的使用注意 (1)分类只能增加方法(包括类方法和对象方法),不能增加成员变量 (2)在分类方法的实现中可以访问原来类中的成员变量: (3)分类中可以重新实现原来类中的方法,但是会覆盖掉原来的方法,导致原来的方法无法再使用(警

李洪强iOS开发之OC语言类的深入和分类

OC语言类的深入和分类 一.分类 (一)分类的基本知识  概念:Category  分类是OC特有的语言,依赖于类. 分类的作用:在不改变原来的类内容的基础上,为类增加一些方法. 添加一个分类: 文件结构图: 在分类中添加一个方法 Study方法的实现 测试程序: (二)分类的使用注意 (1)分类只能增加方法(包括类方法和对象方法),不能增加成员变量 (2)在分类方法的实现中可以访问原来类中的成员变量: (3)分类中可以重新实现原来类中的方法,但是会覆盖掉原来的方法,导致原来的方法无法再使用(警

【Objective-C】02.第一个OC语言类

02.第一个OC语言类 在java语言中,创建一个类只需要一个文件,而在oc语言中,创建一个类需要两个文件.m文件和.h文件. .h文件是声明类,用来声明成员变量和方法.用关键词@interface来修饰,以@end结尾. .m文件是实现类,用来实现成员变量和方法,用关键词@implementation来修饰,以@end结尾. 方法:在oc语言中方法都需要用+或-来表明方法的类型. +表示的是静态方法. -表示的是动态方法. .h文件中的所有方法都是public,不能更改. 成员变量:成员变量按

OC语言类的深入和分类

一.分类 (一)分类的基本知识  概念:Category  分类是OC特有的语言,依赖于类. 分类的作用:在不改变原来的类内容的基础上,为类增加一些方法. 添加一个分类: 文件结构图: 在分类中添加一个方法 Study方法的实现 测试程序: (二)分类的使用注意 (1)分类只能增加方法(包括类方法和对象方法),不能增加成员变量 (2)在分类方法的实现中可以访问原来类中的成员变量: (3)分类中可以重新实现原来类中的方法,但是会覆盖掉原来的方法,导致原来的方法无法再使用(警告): (4)方法调用的

Java语言类的特性

一.内容的概述(主要内容) *类的私有成员和公共成员 *方法的重载 *构造方法 *类的静态方法 *对象的应用 二.类的私有成员和公有成员 私有成员:加private访问控制修饰符 公有成员:加public访问控制修饰符 如果没有一个机制来限制对类中成员的访问,则很有可能会造成错误的输入.为了防止这样的情况发生,Java语言提供了私有成员访问控制修饰符private..也就是说,如果在类的成员声明前加上修饰符private,则就无法从该类的外部访问到该类内部的成员,而只能通过该类自身访问和修改,而

Java语言类的学习

java语言的面向对象有三个特征:封装,继承,多态. 其中关于继承Java提供了三种属性分别是 private . protected和public访问控制符来实现良好的封装,extends实现让子类继承父类,这样再通过访问控制就可以实现对父类里的定义的方法了进而提高了代码的复用性,且只能实现单继承,进而避免了c++语言多继承带来的复杂问题了.在面向对象的语言中,类作为面向对象的一种非常重要类型,可以把类当做一种自定义类型,可以使用类来定义变量.我们将这种变量(类)统称为引用变量.这也就是说所有