第九章常用类

TomHanck4
2022-06-09 / 3 评论 / 0 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2022年06月11日,已超过1043天没有更新,若内容或图片失效,请留言反馈。

第九章常用类

目标

常用类

Math类

  • 为三角函数、对数函数和其他通用数学函数提供常数和静态方法
  • 对数字变量提供操作方法
  • 系统类,只需会操作
    class Program
    {
        static void Main(string[] args)
        {
            //Math类是一个静态类
            Console.WriteLine(Math.PI);//圆周率
            Console.WriteLine(Math.Abs(-2));//返回自然数的绝对值
            Console.WriteLine(Math.Acos(0.5));//返回余弦值为指定数字的角度(单位为弧度)
            Console.WriteLine(180*Math.Acos(0.5)/Math.PI);//返回余弦值为指定数字的角度
            Console.WriteLine(Math.Floor(6.7));//对小数向下取整
            Console.WriteLine(Math.Round(6.7));//返回四舍五入的值
            Console.WriteLine(Math.Sqrt(9));//返回指定数的平方根
            Console.WriteLine(Math.Pow(3, 2));//求一个数的指定次幂
        }
    }

Random类

  • 命名空间:System
  • 伪随机生成器

    • 伪随机数是以相同的概率从一组有限的数字中选取的。所选数字并不具有完全的随机性,因为它们是一种确定的数学算法选择的,但是从实用的角度而言,其随机程度已经够用。
class Program
    {
        static void Main(string[] args)
        {
            //Random类是用来产生随机数的一个系统类
            // 第一种实例化
            Random rd = new Random();

            Console.WriteLine(rd.Next());//返回一个随机数
            Console.WriteLine(rd.Next(10));//返回一个指定最大值的随机数
            Console.WriteLine(rd.Next(100,200));//返回一个指定范围的随机数

            //第二种实例化
            Random rd2 = new Random(6);
            for (int i = 0; i < 10; i++)
            {
                Console.Write(rd2.Next(100,200)+" ");
            }

        }
    }

DateTime类

  • 一个结构体,它表示时间上的一刻,通常以日期和当天的时间表示
  • 构造函数

    • Datetime
  • 静态属性

    • Now
    • Today
        static void Main(string[] args)
        {
            //DateTime是表示时间的结构体

            Console.WriteLine(DateTime.IsLeapYear(2024)); //年份是否是闰年
            Console.WriteLine(DateTime.Now);//获取此计算机上的当前时间
            Console.WriteLine(DateTime.Now.AddYears(3));//在当前时间的基础上加上相应的日期
            Console.WriteLine(DateTime.Today);//获取此计算机上的当前日期,时间为0
            Console.WriteLine(DateTime.Today.ToLongDateString());//获取此计算机上的当前日期
            Console.WriteLine(DateTime.Today.ToShortDateString());//获取此计算机上的当前日期
            Console.WriteLine(DateTime.Now.ToLongTimeString());//获取此计算机上的当前时间,时分秒
            Console.WriteLine(DateTime.Now.ToShortTimeString());//获取此计算机上的当前时间,时分
            Console.WriteLine(DateTime.Now.ToString());//获取此计算机上的当前时间
            Console.WriteLine(DateTime.Now.ToString());//获取当地的时间
        }

String类和StringBUilder类

System.String类

  • 具有不变性
  • 和string关键字对应
  • 可以使用“+”连接多个字符串
  • 可以使用索引器提取字符
  • 频繁的插入、删除或替换操作就会明显的降低性能

StringBuilder类

  • 具有可变性
  • 只能进行增、删、改操作
  • Length,属性获取字符串的实际长度,Capacity属性获取字符串占据的内存容量

实例

        static void Main(string[] args)
        {
            //String和StringBuiler都是和字符串有关的类

            //String类
            string str = "你好," + "我是FSY,我是FSY,我是FSY";
            Console.WriteLine(str);

            Console.WriteLine(str.Length);//计算字符串的长度,空格也算
            Console.WriteLine(str.Remove(3,5));//从0开始计算,删除后面的字符
            Console.WriteLine(str.Replace("F", "Y"));//替换指定字符
            Console.WriteLine(str.Insert(3,"1"));//插入字符的位置及字符
            Console.WriteLine(str.Substring(3,5));//从字符串中提取一些字符
            Console.WriteLine("======================================================");
            //按照指定规则分割字符串
            string[] arr = str.Split(',');

            //遍历输出数组中的元素
            foreach (string item in arr)
            {
                Console.WriteLine(item+"*");
            }

            Console.WriteLine("========================================================");

            //StringBuilder具有可变性
            StringBuilder sb = new StringBuilder("Hello World");
            Console.WriteLine(sb.Capacity);//字符串在内存中的容量
            sb.Append("!你好,世界!");//在字符串后追加内容
            Console.WriteLine(sb);
            Console.WriteLine(sb.Capacity);//字符串在内存中的容量
            sb.Remove(3, 5);//将指定范围的字符从此实例中移除
            Console.WriteLine(sb);

        }

正则表达式

  • 引入System.Text.RegularExpressionsi命名空间
  • Regex

    • 包含了正则表达式,以及使用正则表达式的各种方法。
  • MathchCollction

    • 包含了一个正则表达式找到的所有匹配项。
  • Match

    • 包含了一次匹配中所有匹配的文本。
  • GroupCollection

    • 包含了一次匹配中的所有分组。
  • Group

    • 包含了一个分组集合中一个组的细节。
  • CaptureCollection

    • 包含一个组的所有Capture对象。
  • Capture

    • 返回组内一次捕获所匹配的字符串。

Regex类

构造方法

  • Regex(string pattern);
  • Regex(string pattern,RegexOptions options);
标志描述
IgnoreCase忽略大小写,默认是区分大小写的
None不设定标志,这是默认选项
MultiLine指定了^和$可以匹配行的开头和结尾,以及字符串的开头和结尾。也就是说,使用换行符分隔,在每一行都能得到不同的匹配。但“.”仍然不匹配换行符

IsMatch()方法

  • 实例方法

    • New regex
  • 静态方法

    • Regex.IsMatch

实例

    class Program
    {
        static void Main(string[] args)
        {
            //第一种:创建正则表达式对象
            Regex rg = new Regex("ABC");
            string str = "there is much ABC";
            //使用IsMatch方法对字符串进行匹配
            Console.WriteLine(rg.IsMatch(str));

            //第二种:创建正则表达式对象
            Regex reg = new Regex("ABC", RegexOptions.IgnoreCase);//不区分大小写
            string str1 = "there is much AbC";
            Console.WriteLine(reg.IsMatch(str1));

        }

Replace()方法

  • 实例方法

    • New regex
  • 静态方法

    • Regex.Replace

实例

Console.WriteLine(Regex.Replace("舔狗得house", "得", "不得"));

Split()方法

  • 静态方法
  • public static string[]Split(string input,string pattern)
  • public static string[]Split(string input,string pattern,RegexOptions options)
  • 实例方法
            string[] strArr = Regex.Split("绿色生态,绿色生活,铜绿,人生赢家", "绿");
            foreach (var item in strArr)
            {
                Console.WriteLine(item);
            }

MathchCollction类

Match类和MathchCollction类

  • 利用正则表达式进行匹配时往往匹配成功的次数不止1次,如果想知道每一个成功匹配的细节,则需要用Match类和MatchCollection类。
  • Match类表示一次成功的匹配,MatchCollection类是一个Match对象的集合。
  • 我们可以使用Regex类的Match()方法来得到一个Match对象或者用Matchs()方法来得到一个MatchCollection对象

C#正则表达式匹配字符之含义

1、正则表达式的作用:用来描述字符串的特征。
2、各个匹配字符的含义:

,     :表示除\n以外的单个字符
[]    :表示在字符数组[门中罗列出来的字符任意取单个
|     :表示”或"的意思
()    :表示改变优先级或"提取组"
*     :限定前面的表达式出现0次或多次
+     :限定前面的表达式出现1次或多次
?     :限定前面的表达式出现0次或1次
^     :表示以表达式开头(例:^http表示字符串以"http"开头)
$     :表示以表达式结尾(例:com$表示字符串以"com"结尾)
\d    :小写\d表示0-9之间的数字
\D    :大写\D表示除了0-9之外的字符
\w    :写\w表示[a-zA-Z0-9]
\W    :大写\W表示除了[a-zA-Z0-9]之外的字符
\s    :小写\s表示非可见字符(如空格、tab、\r\n..........)
\S    :大写\S表示除了非可见字符之外的字符

实例

            string str3="a sailor went to sea to set,to see what he could see";
            MatchCollection mc = Regex.Matches(str3,"se\\w");//\是分隔符,\w是一个字符
            Console.WriteLine(mc.Count);
            foreach (Match item in mc)
            {
                Console.WriteLine(item);
            }
            //验证手机号
            string phoneNum = "^1[0-9]{10}$";//手机号的规律
            string tel = Console.ReadLine();

            //判断用户输入的数字是不是手机号
            if (Regex.IsMatch(tel,phoneNum))
            {
                Console.WriteLine("是一个手机号");
            }
            else
            {
                Console.WriteLine("随便了");
            }

总结

  • 掌握Math类及方法的使用
  • 掌握Randoma类及方法的使用
  • 掌握DateTime类及方法的使用
  • System.String类的对象具有不变性
  • System.Text.StringBuilder类的对象的内容可以改变
  • Regex类可用正则表达式处理复杂的字符串问题
0

评论 (3)

取消
  1. 头像
    TomHanck4 作者
    Windows 10 · Google Chrome

    醒醒吧阿祖,没有人来看你的博客表情

    回复
  2. 头像
    阿伟
    Windows 7 · Google Chrome

    blog我吃定了,耶稣也留不住它,我说的!

    回复