3.11课·········C#类
String类:
.Length 字符的长度,返回一个int类型的值
.Trim() 去掉开头以及结尾的空格
.TrimStart() 去掉字符串开头的空格
.TrimEnd() 去掉字符串后面的空格
.ToUpper() 全部大写
.ToLower() 全部小写
Substring(起始位置,截取长度)
Substring(起始位置) 只写起始位置,可以截取到尾
身份证截取生日:
Console.Write("请输入身份证号:");
string s = Console.ReadLine();
if (s.Length == )
{
string y = s.Substring(, );
string m = s.Substring(, );
string d = s.Substring(, );
Console.WriteLine("您的生日是"+y+"年"+m+"月"+d+"日.");
}
else
{
Console.WriteLine("输入有误!");
}
IndexOf("字符串") 返回第一次出现此字符串的索引
LastIndexOf("字符串") 返回最后一次出现此字符串的索引
StartsWith("字符串") 是否以此字符串为开头,返回True或False
EndsWith("字符串") 是否以此字符串为结尾
Contains("字符串") 是否包含此字符串。返回True或者False
Replace("老字","新字") 将老字用新字替换
//string a = " abcdEfGh6t9w ";//前面4个空格,后面2个空格
//int i = a.Length;//i==18//一个空格算一个字符//获取字符串a的长度,返回一个int类型的值
//string b = a.Substring(6);//从第7个字符开始截取后面所有的字符串//b=="cdEfGh6t9w "
//string b = a.Substring(6, 5);//从第7个字符开始截取5个字符//b=="cdEfG"
//int c = a.IndexOf("d");//从前面开始找,找到第一个,从0开始数它的索引号//第一个"d"的索引号//若找不到则为-1
//int d = a.LastIndexOf("d");//从后面开始找,找到第一个,从0开始数它的索引号//最后一个"d"的索引号//若找不到则为-1
//若c==d,则a中只有一个"d"
练习:判断邮箱格式是否正确
1.有且只能有一个@
2.不能以@开头
3.@之后至少有一个.
4.@和.不能靠在一起
5.不能以.结尾
Console.Write("请输入您的邮箱号:");
string mail = Console.ReadLine();
bool a = mail.Contains("@");
if (a == true)//首先确认包含@
{
int b = mail.IndexOf("@");//从前面数索引号
int c = mail.LastIndexOf("@");//从后面数索引号
if (b == c)//只有一个@
{
if (b != )//不能以@开头
{
string mail1 = mail.Substring(b);//从@开始后面的索引号
if (mail1.Contains("."))//@后至少有一个.
{
int d = mail1.IndexOf(".");//从前面数.的索引号
if (d != )//@和.不在一起
{
int e = mail1.LastIndexOf(".");//从后面数.的索引号
if (e != mail1.Length - )//长度从1开始,而索引从0开始,所以长度需-1//不以.结尾
{
Console.WriteLine("您的邮箱格式输入正确!");
}
else
{
Console.WriteLine("不能以.结尾");
}
}
else
{
Console.WriteLine("@不能和.在一起");
}
}
else
{
Console.WriteLine("@后至少有一个.");
}
}
else
{
Console.WriteLine("不能以@开头!");
}
}
else
{
Console.WriteLine("邮箱号只能有一个@!");
}
}
else
{
Console.WriteLine("邮箱号必须包含@!");
}
Console.ReadLine();
随机数类`````Random
Random ran = new Random();//初始化
int s=ran.Next();//返回非负随机数
int a = ran.Next(10);//10以内的随机整数
int b =ran.Next(s.Length);//小于字符串s长度的随机一个数
int c = ran.Next(10,100);//10~100范围内的随机数,c>=10&&c<100,范围的上线必须大于等于范围的下线
随机出验证码,对照输入,判断正误!若输入错误,请重新输入:
string s = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQUVWXUZ0123456789";//长度为62,索引0~61
Random ran = new Random();
for (; ; )
{
string biao = "";
for (int i = ; i <= ; i++)//取四个字符
{
biao += s.Substring(ran.Next(s.Length), );//从小于字符串s长度的随机一个位置截取一个字符//biao是string类型,+表示拼接
}
Console.WriteLine(biao);
Console.Write("请输入验证码:");
string shu = Console.ReadLine();
if (shu.ToLower() == biao.ToLower())
{
Console.WriteLine("输入正确!");
break;
}
else
{
Console.Clear();//清屏,将屏幕上的信息都清掉
Console.WriteLine("输入错误!");
}
}
Console.ReadLine();
math类
double a = 3.5;
Console.WriteLine(Math.Ceiling(a));//上线//4
Console.WriteLine(Math.Floor(a));//下线//3
Console.WriteLine(Math.PI*a);//π,圆周率
Console.WriteLine(Math.Sqrt(a));//开平方根
Console.WriteLine(Math.Round(a));//四舍五入//奇数.5取上线,偶数.5取下线
3.11课·········C#类的更多相关文章
- C++11中对类(class)新增的特性
C++11中对类(class)新增的特性 default/delete 控制默认函数 在我们没有显式定义类的复制构造函数和赋值操作符的情况下,编译器会为我们生成默认的这两个函数: 默认的赋值函数以内存 ...
- Android快速开发不可或缺的11个工具类
Android快速开发不可或缺的11个工具类 :http://www.devst ore.cn/code/info/363.html
- c++11 可变参数模板类
c++11 可变参数模板类 #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> #inc ...
- OPENGL NEHE Lesson11 11课的计算公式推导
计算多边形公式推导: 条件x 离散的值从0到45; y离散的值从0到45; z是符合正弦波. 问题: 1 要求x’=f(x)映射到 x’ ∈[-4.5, 4.5], x ∈{0, 1, 2, …, 4 ...
- Js笔记-第11课
// 第11课 作用域精解 运行期上下文,当函数执行时,会创建一个成为执行期上下文的内部对象.一个执行期上下文定义了一个函数执行时的环境,函数每次执行时对应的执行期上下文都是独 ...
- 第11课 - enum, sizeof, typedef 分析
第11课 - enum, sizeof, typedef 分析 1. enum介绍 (1)enum是C语言中的一种自定义类型,和struct.union地位相同,格式如下: // enum每个值的最后 ...
- C++ primer plus读书笔记——第11章 使用类
第11章 使用类 1. 运算符重载是一种形式的C++多态. 2. 不要返回指向局部变量或临时对象的引用.函数执行完毕后,局部变量和临时对象将消失,引用将指向不存在的数据. 3. 运算符重载的格式如下: ...
- 第11课 Qt中的字符串类
1. 历史遗留问题和解决方案 (1)历史遗留问题 ①C语言不支持真正意义上的字符串 ②C语言用字符数组和一组函数实现字符串操作 ③C语言不支持自定义类型,因此无法获得字符串类型 (2)解决方案 ①从C ...
- C++11 单例类实现
单例类: (1) 单例类保证全局只有一个唯一的实例对象. (2) 单例类保证只有唯一的接口获取这唯一实例. 非线程安全的单例类举例: class CSingleton { public: ~CSing ...
随机推荐
- Nginx:HTTP过滤模块
参考资料<深入理解Nginx> HTTP过滤模块也是一种HTTP模块,与普通HTTP处理模块不同在于: 1.一个请求仅由一个HTTP处理模块处理,而可以被任意个HTTP过滤模块处理 2.普 ...
- STL学习笔记(仿函数)
仿函数(Functors) 仿函数(functor),就是使一个类的使用看上去象一个函数.其实现就是类中实现一个operator(),这个类就有了类似函数的行为,就是一个仿函数类了. 例如我们定义一个 ...
- beyond compare 软件学习
beyond compare 软件可以实现基本的文件对比,这点和 NotePad++ 的功能一样.但是在实现文件夹与文件夹之间的对比的话,就要使用 beyond compare 进行对比,效率是成倍提 ...
- java 实现统计某段文字在内容中出现的次数
http://outofmemory.cn/code-snippet/815/java-zishutongji 一个api,位于apache.commons.lang.StringUtils类下的一个 ...
- The TTY demystified
http://www.linusakesson.net/programming/tty/index.php The TTY demystified Real teletypes in the 1940 ...
- Ubuntu 16.04.5下FFmpeg编译与开发环境搭建
PC环境: Ubuntu 18.04 上面只要安装下面的提示安装即可,基本上不必再下载依赖库的源代码进行编译和安装 编译步骤: 1, 安装相关工具: sudo apt install -y auto ...
- MyBatis_传入参数的问题
一.单个参数 1.基本数据类型 (1)直接使用 List<ChargeRuleDO> tests(long id); <select id="tests" res ...
- linux下tomcat6无法显示图片验证码 少了图形插件
linux下tomcat6无法显示图片验证码(windows下显示正常) 原创 2015年10月20日 10:31:47 3526 linux下tomcat6无法显示图片验证码(windows下显示正 ...
- 【Python+selenium Wendriver API】之下拉框定位
上代码: # coding:utf-8 from selenium import webdriver from selenium.webdriver.common.action_chains impo ...
- 【JMeter4.0学习(九)】之定时器
目录: 固定定时器 高斯随机定时器 附 一.固定定时器 1.添加线程组 2.添加固定定时器 3.添加HTTP请求 4.添加结果树以及运行 二.高斯随机定时器 1.添加线程组 2.添加高斯随机定时器 ...