文章目录
写在前面
本文主要内容:Console 类、Math 类、Random 类、DateTime 类、Regex类、字符串常用操作、数据转换
1、C#提供的几个常用类
1.1、Console 类
常用方法
方法 | 描述 |
---|---|
Write | 向控制台输出内容后不换行 |
WriteLine | 向控制台输出内容后换行 |
Read | 从控制台上读取一个字符 |
ReadLine | 从控制台上读取一行字符 |
1.2、Math 类
方法 | 描述 |
---|---|
Abs | 取绝对值 |
Ceiling | 返回大于或等于指定的双精度浮点数的最小整数值 |
Floor | 返回小于或等于指定的双精度浮点数的最大整数值 |
Equals | 返回指定的对象实例是否相等 |
Max | 返回两个数中较大数的值 |
Min | 返回两个数中较小数的值 |
Sqrt | 返回指定数字的平方根 |
Round | 返回四舍五入后的值 |
1.3、Random 类
方法 | 描述 |
---|---|
Next() | 每次产生一个不同的随机正整数 |
Next(int max Value) | 产生一个比 max Value 小的正整数 |
Next(int min Value,int max Value) | 产生一个 minValue~maxValue 的正整数,但不包含 maxValue |
NextDouble() | 产生一个0.0~1.0的浮点数 |
NextBytes(byte[] buffer) | 用随机数填充指定字节数的数组 |
1.4、DateTime 类
方法 | 描述 |
---|---|
Date | 获取实例的日期部分 |
Day | 获取该实例所表示的日期是一个月的第几天 |
DayOfWeek | 获取该实例所表示的日期是一周的星期几 |
DayOfYear | 获取该实例所表示的日期是一年的第几天 |
Add(Timespan value) | 在指定的日期实例上添加时间间隔值 value |
AddDays(double value) | 在指定的日期实例上添加指定天数 value |
AddHours(double value) | 在指定的日期实例上添加指定的小时数 value |
AddMinutes(double value) | 在指定的日期实例上添加指定的分钟数 value |
AddSeconds(double value) | 在指定的日期实例上添加指定的秒数 value |
AddMonths(int value) | 在指定的日期实例上添加指定的月份 value |
AddYears (int value) | 在指定的日期实例上添加指定的年份 value |
实例
class Program
{
static void Main(string[] args)
{
DateTime dt = DateTime.Now;
Console.WriteLine("当前日期为:{0}", dt);
Console.WriteLine("当前时本月的第{0}天", dt.Day);
Console.WriteLine("当前是:{0}", dt.DayOfWeek);
Console.WriteLine("当前是本年度第{0}天", dt.DayOfYear);
Console.WriteLine("30 天后的日期是{0}", dt.AddDays(30));
DateTime dt1 = DateTime.Now;
DateTime dt2 = new DateTime(2019, 6, 1);
TimeSpan ts = dt2 - dt1;
Console.WriteLine("间隔的天数为{0}天", ts.Days);
}
}
1.5、Regex类(正则表达式)
正则表达式中的元字符
字符 | 描述 |
---|---|
. | 匹配除换行符以外的所有字符 |
\w | 匹配字母、数字、下画线 |
\s | 匹配空白符(空格) |
\d | 匹配数字 |
\b | 匹配表达式的开始或结束 |
^ | 匹配表达式的开始 |
$ | 匹配表达式的结束 |
正则表达式中表示重复的字符
字 符 | 描 述 |
---|---|
* | 0次或多次字符 |
? | 0次或1次字符 |
+ | 1次或多次字符 |
{n} | n次字符 |
{n,M} | n到M次字符 |
{n, } | n次以上字符 |
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入一个邮箱");
string email = Console.ReadLine();
Regex regex = new Regex(@"^(\w)+(\.\w)*@(\w)+((\.\w+)+)$");
if (regex.IsMatch(email))
{
Console.WriteLine("邮箱格式正确。");
}
else
{
Console.WriteLine("邮箱格式不正确。");
}
}
}
2、字符串常用操作
class Program
{
static void Main(string[] args)
{
// 获取长度
string str = "这是一个字符串!";
Console.WriteLine("字符串的长度为:" + str.Length);
Console.WriteLine("字符串中第一个字符为:" + str[0]);
Console.WriteLine("字符串中最后一个字符为:" + str[str.Length - 1]);
// 字符位置,没有返回-1
int i = str.IndexOf("@");
// 字符替换
str = str.Replace("!", "。");
// 字符截取
str = str.Substring(0, 2);
// 字符插入
str = str.Insert(1, ",");
}
}
3、数据转换
3.1、隐式转换
int a = 100;
double d = a; //将int类型转换为double类型
float f = 3.14f;
d = f; //将float类型转换为double类型
3.2、显式转换
方法 | 描述 |
---|---|
ToBoolean | 如果可能的话,把类型转换为布尔型。 |
ToByte | 把类型转换为字节类型。 |
ToChar | 如果可能的话,把类型转换为单个 Unicode 字符类型。 |
ToDateTime | 把类型(整数或字符串类型)转换为 日期-时间 结构。 |
ToDecimal | 把浮点型或整数类型转换为十进制类型。 |
ToDouble | 把类型转换为双精度浮点型。 |
ToInt16 | 把类型转换为 16 位整数类型。 |
ToInt32 | 把类型转换为 32 位整数类型。 |
ToInt64 | 把类型转换为 64 位整数类型。 |
ToSbyte | 把类型转换为有符号字节类型。 |
ToSingle | 把类型转换为小浮点数类型。 |
ToString | 把类型转换为字符串类型。 |
ToType | 把类型转换为指定类型。 |
ToUInt16 | 把类型转换为 16 位无符号整数类型。 |
ToUInt32 | 把类型转换为 32 位无符号整数类型。 |
ToUInt64 | 把类型转换为 64 位无符号整数类型。 |
3.3、强制转换
double dbl_num = 12345678910.456;
int k = (int) dbl_num ;//此处运用了强制转换
3.4、 Parse方法与ToString方法
Parse 方法用于将字符串类型转换成任意类型
int num1 = int.Parse("12348");
ToString 方法用于将任意的数据类型转换成字符串类型
int a=100;
string str=a.ToString();
3.5、Convert 方法
它能够将任意数据类型的值转换成任意数据类型,前提是不要超出指定数据类型的范围。
方法 | 说明 |
---|---|
Convert.ToInt16() | 转换为整型(short) |
Convert.ToInt32() | 转换为整型(int) |
Convert.ToInt64() | 转换为整型(long) |
Convert.ToChar() | 转换为字符型(char) |
Convert.ToString() | 转换为字符串型(string) |
Convert.ToDateTime() | 转换为日期型(datetime) |
Convert.ToDouble() | 转换为双精度浮点型(double) |
Conert.ToSingle() | 转换为单精度浮点型(float) |
class Program
{
static void Main(string[] args)
{
float num1 = 82.26f;
int integer;
string str;
integer = Convert.ToInt32(num1);
str = Convert.ToString(num1);
Console.WriteLine("转换为整型数据的值{0}", integer);
Console.WriteLine("转换为字符串{0},",str);
}
}
3.6、装箱和拆箱(值类型和引用类型)
int val = 100;
object obj = val;
Console.WriteLine("对象的值 = {0}", obj);
//这是一个装箱的过程,是将值类型转换为引用类型的过程
int val = 100;
object obj = val;
int num = (int) obj;
Console.WriteLine("num: {0}", num);
//这是一个拆箱的过程,是将值类型转换为引用类型,再由引用类型转换为值类型的过程