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 ...
随机推荐
- 51单片机 | 并行I/O口扩展实例(74LS244/74LS373/4071)
并行I/O口扩展实例 //<51单片机原理及应用(第二版)——基于Keil C与Proteus>第四章例4.4 I/O口不能完全用于输入/输出操作,当需要扩展外部存储器时,P0.P2口用作 ...
- Oracle 创建表空间、临时表空间、创建用户并指定表空间、授权,删除用户及表空间
/* 说明:若已经存在相应的用户和表空间,则需要先删除相应的用户和表空间 然后再全部重新建立 */ --删除用户 drop user USERNAME cascade; --删除表空间 drop ta ...
- LoadRunner lr_eval_string() 函数使用及LR中变量、参数的简单使用
lr_eval_string() 函数的主要作用:返回脚本中的一个参数当前的值, 返回值类型:char 一般多用在调试脚本时输出参数的值.具体用法如下:lr_output_message(" ...
- 3、Linux内核模块学习
一.内核模块的学习 内核的整体框架是非常的大,包含的组件也是非常多,如何将需要的组件包含在内核中呢?选择一,就是将所有的组件全部编译进内核,虽然需要的组件都可以使用,但是内核过分庞大,势必带来效率 ...
- JDBC技术总结(一)
1. JDBC简介 SUN公司为了简化.统一对数据库的操作,定义了一套Java操作数据库的规范,称之为JDBC,JDBC不能直接操作数据库,JDBC通过接口加载数据库的驱动,然后操作数据库.JDBC: ...
- asp.net core mvc视频A:笔记3-3.Model与强类型视图
创建项目,添加TestController 定义一个类(Model),并赋值 建立视图页面 注意:Model是一个特定的对象,取决于传递过来的参数 运行结果 到现在为止,依然没有改变动态类型,需要转换 ...
- Paxos 学习总结
近期学习了分布式领域的重要算法Paxos,这里罗列下关键点当作总结.自己水平有限,难免存在谬误,恳请读者指正.本篇不包含Paxos的基本理论介绍.Paxos基础能够參考以下的学习资料章节. 1 Pax ...
- 专用于高并发的map类-----Map的并发处理(ConcurrentHashMap)
oncurrentModificationException 在这种迭代方式中,当iterator被创建后集合再发生改变就不再是抛出ConcurrentModificationException, 取 ...
- Quartz.Net - Lesson 1: 使用Quartz
Lesson 1: 使用Quartz 本系列文章是官方3.x文档的翻译,原文地址:https://www.quartz-scheduler.net/documentation/quartz-3.x/t ...
- PHP性能之语言性能优化说明
PHP语言性能优化优化啥? 如下图所示,PHP直接执行的是opcode,所以我们尽量减少扫描和转码解析. 这是我们第一个优化点,尽量使用PHP内置的函数代替我们的代码来实现同样的功能. 和我们自己写的 ...