扣响C#之门笔记-第十九章

19.1 sting 类

sting 类的基础用法:

(1).NET为sting设计了索引器,因此可以像数组那样访问字符串;

(2)Length属性表示字符串长度(是string类唯一的属性)

(3)"="运算符将元字符串的引用,传递给目标字符串,从而使两个变量指向同一个字符串;

(4)字符串不可改变,当我们改变字符串的值时,系统会为字符串重新分配引用空间,并将值放进去;(因此不会影响原引用地址的内容)

(5)string.Copy用于复制字符串内容,(直接复制值,非引用地址)

(6)CopyTo(原字符串开始位置,目标字符数组,目标字符数组开始位置,复制字符个数),用于复制部分字符到字符组

class Program
    {
        static void Main(string[] args)
        {
            string s1 = "How are you";

            Console.WriteLine(s1[0]); //(1).NET为C#设计索引器,因此可以像数组那样访问字符串
            Console.WriteLine(s1.Length);//(2)Length属性表示字符串长度(是string类唯一的属性)
            for (int i = 0; i < s1.Length; i++)
            {
                Console.Write(s1[i]);
            }
            Console.ReadKey();
            Console.WriteLine("******************");

            string s2 = s1;  //(3)"="运算符将元字符串的引用复制了一份,传递给目标字符串,从而使两个变量指向同一个字符串;
            s1 = "How do you do";//(4)但是字符串不可改变,当我们改变字符串的值时,系统会为字符串重新分配引用空间,因此不会影响原引用地址的内容
            Console.WriteLine(s1);
            Console.WriteLine(s2);
            Console.ReadKey();

            Console.WriteLine("******************");
            string ss1 = "How do you do";
            string ss2 = string.Copy(ss1);  //(5)string.Copy用于复制字符串内容,(直接复制值,非引用地址)
            Console.WriteLine(ss2);

            Console.WriteLine("******************");

            string sss1 = "someone";
            char[] c={‘*‘,‘*‘,‘*‘,‘*‘,‘*‘,‘*‘};

            sss1.CopyTo(0, c, 0, 6);  //(6)CopyTo(原字符串开始位置,目标字符数组,目标字符数组开始位置,复制字符个数),用于复制部分字符到字符组
            foreach (var item in c)
            {
                Console.WriteLine(item);
            }
            Console.ReadKey();
            Console.WriteLine("******************");

        }
    }

比较字符

(1)“==”可用于比较两个字符串,相等返回true,否则返回false;

(2)Equals 可用于比较两个字符串,相等返回true,否则返回false

(3)Equals方法也有一个静态的重载;

(4)CompareTo 用于比较两个字符串的大小,大于返回值1,等于返回0,小于返回-1

(5)StartsWith 判断字符串是否以某个字符串开头

(6)EndsWith 判断字符串是否以某个字符串结尾

    class Program
    {
        static void Main(string[] args)
        {
            string s1 = "Hello";
            string s2 = "Hello";
            if (s1==s2)      //(1)“==”可用于比较两个字符串,相等返回true,否则返回false
            {
                Console.WriteLine("s1==s2");
            }
            Console.ReadKey();

            if (s1.Equals(s2))
            {
                Console.WriteLine("s1 Equals s2");//(2)Equals 可用于比较两个字符串,相等返回true,否则返回false
            }
            Console.ReadKey();

            Console.WriteLine(string.Equals(s1, s2));//(3)Equals方法也有一个静态的重载,
            Console.WriteLine("*******************");

            string s6 = "better";
            string s7 = "best";
            switch (s6.CompareTo(s7))  //(4)CompareTo 用于比较两个字符串的大小,大于返回值1,等于返回0,小于返回-1
            {
                case -1: { Console.WriteLine("-1"); break; }
                case 1: { Console.WriteLine("1"); break; }
                case 0: { Console.WriteLine("0"); break; }
            }
            Console.ReadKey();

            Console.WriteLine("*******************");

            if (s6.StartsWith("bet"))//(5)StartsWith 判断字符串是否以某个字符串开头
            {
                Console.WriteLine("StartsWith bet");
            }

            if (s6.EndsWith("er"))
            {
                Console.WriteLine("EndsWith er");//(6)EndsWith 判断字符串是否以某个字符串结尾
            }
            Console.ReadKey();

        }
    }

查找字符串

(1)IdexOf用于查找 某个字符,或者字符串第一次出现的位置(如果没有就放回-1);

(2)IdexOf加数字表示在原字串数字以后开始查找;

(4)LastIndextOf,某个字符,或者字符串最后一次出现的位置(如果没有就放回-1);

(4)LastIndextOf加数字表示在原字串数字以后开始查找

    class Program
    {
        static void Main(string[] args)
        {
            string s = "you love to hear youself dance you";

            int i = s.IndexOf(‘l‘); //(1)IdexOf用于查找 某个字符,或者字符串第一次出现的位置(如果没有就放回-1);
            int j = s.IndexOf("you");
            Console.WriteLine(i);
            Console.WriteLine(j);

            int ii = s.IndexOf(‘l‘,6); //(2);加数字表示在原字串数字以后开始查找
            int jj = s.IndexOf("you",2);
            Console.WriteLine(ii);
            Console.WriteLine(jj);
            Console.ReadKey();

            Console.WriteLine(s.LastIndexOf(‘y‘));//(3)LastIndextOf,某个字符,或者字符串最后一次出现的位置(如果没有就放回-1);
            Console.WriteLine(s.LastIndexOf("you"));//(4)LastIndextOf加数字表示在原字串数字以后开始查找
            Console.ReadKey();

        }
    }

拆分修改字符串:

(1)Substring(x),从字符串位置x开始一直到结尾截取字符串

(2)Substring(x,y),从字符串位置x开始,截取y个长度的字符串

(3)Split(分隔字符数组X) :以X为分隔符,将字符串拆分为字符串数组

(4)ToUpper()将字符串转为大写

(5)ToLower将字符串转为小写

(6)Insert(X,Y),在字符串位置X前插入字符串Y

(7)Replace(X,Y),将字符串中的X字符替换为Y

(8)Remove(X)将字符串中的X位置后面字符删除

 class Program
    {    ///截取字符串
        static void Main(string[] args)
        {
            string s = "I LOVE YOU";
            Console.WriteLine(s[2]);
            Console.WriteLine(s.Substring(1)); //(1)Substring(x),从字符串位置x开始一直到结尾截取字符串
            Console.WriteLine(s.Substring(2, 5));//(2)Substring(x,y),从字符串位置x开始,截取y个长度的字符串
            Console.ReadKey();

            char[] oper={‘ ‘};
            string[] c = s.Split(oper); //(3)Split(分隔字符数组X) :以X为分隔符,将字符串拆分为字符串数组
            foreach (var item in c)
            {
                Console.WriteLine(item);
            }
            Console.ReadKey();

            string name = "ZhangkAiNeng";
            Console.WriteLine(name.ToUpper());//(4)ToUpper()将字符串转为大写
            Console.WriteLine(name.ToLower());//(5)ToLower将字符串转为小写
            Console.ReadKey();

            string n = "*****";
            Console.WriteLine(n.Insert(n.Length, "@"));//(6)Insert(X,Y),在字符串位置X前插入字符串Y
            Console.WriteLine(n.Replace("*", "#"));//(7)Replace(X,Y),将字符串中的X字符替换为Y
            Console.WriteLine(n.Remove(2));//(8)Remove(X)将字符串中的X位置后面字符删除
            Console.ReadKey();

        }
    }

9.2 SringBulder 类;

SringBulder 类是可以修改的字符串; StringBuilder s = new StringBuilder();

(1)Capacity 用于获取为 StringBuilder的容量

(2)Length 用于表示StringBuilder的字符实际占用长度

(3)EnsureCapacity 用于增加Capacity,不必记忆其增加长度规则

(4)Length 可以限制StringBuilder长度,如果字符实际长度其长度,后面的字符就被截断,不够就加空格;

(5)Append 方法用于在StringBuilder 尾部追加字符

(6)Insert(x,y) 在字符串x位置前面插入字符串y

(7)Replace(x,y) 将StringBuilder中的在X字符串替换为Y字符串;

(8)Remove(x,y) 将StringBuilder中的在X开始位置,删除Y个字符;

    class Program
    {
        static void Main(string[] args)
        {
            StringBuilder s = new StringBuilder();
            Console.WriteLine(s.Capacity);//(1)Capacity 用于获取为 StringBuilder的容量
            Console.WriteLine(s.Length);//(2)Length 用于表示StringBuilder的字符实际占用长度
            s.EnsureCapacity(17);//(3)EnsureCapacity 用于增加Capacity,不必记忆其增加长度规则
            Console.WriteLine(s.Capacity);
            Console.WriteLine(s.Length);
            //(4)Length 可以限制StringBuilder长度,如果字符实际长度其长度,后面的字符就被截断,不够就加空格
            StringBuilder ss = new StringBuilder("Hello Wrold");
            ss.Length = 4;
            Console.WriteLine(ss);
            //(5)Append 方法用于在StringBuilder 尾部追加字符
            ss.Append(" World");
            Console.WriteLine(ss);
            //(6)Insert(x,y) 在字符串x位置前面插入字符串y
            ss.Insert(ss.Length, " I love you !!!");
            Console.WriteLine(ss);
            //(7)Replace(x,y) 将StringBuilder中的在X字符串替换为Y字符串;
            ss.Replace("I","YOU");
            Console.WriteLine(ss);
            //(8)Remove(x,y) 将StringBuilder中的在X开始位置,删除Y个字符;
            ss.Remove(ss.Length-3,3);
            Console.ReadKey();

        }
    }

19.3 Char  类:待补充

19.4 正则表达式;

19.4.1 通配符

(1)通配符: \d,\w,\s,.,用来通配指定类型的字符;

 static void Main(string[] args)
        {
            string g = @"Kitty is 16 years old\n
                         Kelly is 18 years old\n
                         Merry is 18 years old\n
                         Karen is 20 years old\n";

            //(1).通配符: \d,\w,\s,.,用来通配指定类型的字符;
            //Regex 类:
            Regex r = new Regex(@"K.... is 1\d years old");
            //\d 数字(0-9),\w 字母(大小写),\s 任何空白 .....
            MatchCollection m = r.Matches(g);
            foreach (var item in m)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine("*****************");

}

19.4.2 可选字符

(1)[]可选字符集:用来指定某个位置上可以出现的字符范围

 class Program
    {
        static void Main(string[] args)
        {
            string g = @"Kitty is 16 years old\n
                         Kelly is 18 years old\n
                         Merry is 18 years old\n
                         Karen is 20 years old\n";
:
            Regex r = null;
            r = new Regex(" [A-Z][a-z][a-z][a-z][a-z] is 18 years old");
            //(2).[]可选字符集:用来指定某个位置上可以出现的字符范围
            MatchCollection m1 = r.Matches(g);
            foreach (var item in m1)
            {
                Console.WriteLine(item);
            }

            Console.WriteLine("*****************");
            r = new Regex(@".........[1][6|8] years old");
            //(3) []中可以加|(或)&(与)限定可选可选内容

            MatchCollection m2 = r.Matches(g);
            foreach (var item in m2)
            {
                Console.WriteLine(item);
            }
            Console.ReadKey();
        }
    }

19.4.2 正则表达式中的逻辑运算;

          r = new Regex(@".........[1][6|8] years old");
            //(3) []中可以加|(或)&(与)限定可选可选内容
            MatchCollection m2 = r.Matches(g);

19.4.3 数量限定

(1)数量限定符 * :表示将之前的字符(最近的一个)重复0次或者多次;[0 to +∞]

(2)数量限定符+:表示将之前的字符(最近的一个)重复1次或者多次;[1 to +∞]

(3)数量限定符? :表示将之前的字符(最近的一个)重复1次或者多次;[0 to 1]

(4)数量限定符{n}表示将之前的字符(最近的一个)重复n次;[n to n]

(5)数量限定符{n,}表示将之前的字符(最近的一个)重复n或者n+次;[n to +∞]

(6)数量限定符{n,m}表示将之前的字符(最近的一个)重复n 到m 次;[n to n]

(7)数量限定符也可以限定多个字符,或者字符串(用()括起来)

(8)懒惰运算符?,用于加载数量限定符后,表示尽可能少循环

(9)数量限定符还可以和通配符号结合使用.如“\w*“表示匹配不限数量的字符

    class Program
    {
        static void Main(string[] args)
        {
            string g = @"lg log loog looog loooog";

            ///数量限定符

            // (1)数量限定符 * :表示将之前的字符(最近的一个)重复0次或者多次;[0 to +∞]
            //Regex r = new Regex("lo*g");

            //(2)数量限定符+:表示将之前的字符(最近的一个)重复1次或者多次;[1 to +∞]
            // Regex r = new Regex("lo+g");

            //(3)数量限定符? :表示将之前的字符(最近的一个)重复1次或者多次;[0 to 1]
            // Regex r = new Regex("lo?g");

            //(4)数量限定符{n}表示将之前的字符(最近的一个)重复n次;[n to n]
            // Regex r = new Regex("lo{1}g");

            //(5)数量限定符{n,}表示将之前的字符(最近的一个)重复n或者n+次;[n to +∞]
            // Regex r = new Regex("lo{1,}g");

            //(6)数量限定符{n,m}表示将之前的字符(最近的一个)重复n 到m 次;[n to n]
            //Regex r = new Regex("lo{0,4}g");

            //(7)数量限定符也可以限定多个字符,或者字符串(用()括起来)
            // g = @"lg leog leoeog leoeoeog leoeoeoeog";
            //Regex r = new Regex("l(eo){0,4}g");

            //(8)懒惰运算符?,用于加载数量限定符后,表示尽可能少循环
            // Regex r = new Regex("lo*?g");

            //(9)数量限定符还可以和通配符号结合使用.如“\w*“表示匹配不限数量的字符

            //Regex r = new Regex(@"l\w*g");

            MatchCollection m = r.Matches(g);
            foreach (var item in m)
            {
                Console.WriteLine(item);
            }
            Console.ReadKey();

        }
    }

19.4.4 定位符

定位符用于指定正则表达式匹配的位置

(1)定位符^:表示从字符头部开始匹配(放在最前面)

(2)定位符$:表示从字符头部开始匹配(放在最后)

(3)定位符\b:表示从字符边界匹配(常用于获取指定字符开头或者结尾的字符)(可放在开头或者结尾)

    class Program
    {
        static void Main(string[] args)
        {
            //定位符用于指定正则表达式匹配的位置
            string s = "year1990 year1991 year1992 year1993 year1994";
                //(1)定位符^:表示从字符头部开始匹配(放在最前面)
                    // Regex r = new Regex(@"^\w\w\w\w\d\d\d\d");

              //(2)定位符$:表示从字符头部开始匹配(放在最后)
                   //Regex r = new Regex(@"\w\w\w\w\d\d\d\d$");

            //(3)定位符\b:表示从字符边界匹配(常用于获取指定字符开头或者结尾的字符)(可放在开头或者结尾)
            //s = "start student lisent best east";//字符边界开头匹配
            // Regex r = new Regex(@"\bst\w*");////字符边界结尾匹配
            Regex r = new Regex(@"\w*st\b");
            MatchCollection m = r.Matches(s);
            foreach (var item in m)
            {
                Console.WriteLine(item);
            }
            Console.ReadKey();
        }
    }

19.5 Regex类

时间: 2024-10-08 10:29:13

扣响C#之门笔记-第十九章的相关文章

扣响C#之门笔记--第二十三章

23.1 泛型的概念 (1)在普通集合中,元素均被看做是object类型,会有以下缺点(a)赋值时候将类型转为object,使用时候又将object转为对应的类型,在装箱和拆箱时候造成一定性能损失:(b)任何类型的数据都可以放进集合里面,不利于类型安全检查: static void Main(string[] args) { Queue q = new Queue(); q.Enqueue(10); q.Enqueue("wo"); // q.Enqueue(1); foreach (

扣响C#之门笔记-第九章

9.1 继承的概念 继承: 基类(父类) 派生类(子类) 派生类中自动拥有了父类的定义的变量和函数,每个派生类也可以成为其他新派生类的父类: 9.2 由父类派生子类 1.继承的语法: eg class Animal //(1)定义父类 { public double weight; private double temperature; public Animal() { weight = 0; temperature = 0; } public void eat() { Console.Wri

扣响C#之门笔记-第八章

8.1 以对象为成员 1.类的成员不光是可以使int,double等基本类型,也可以是其他类的对象: class Program { static void Main(string[] args) { date d = new date(1992, 5, 18, new Time(12, 20, 5)); } } class date { int year; int month; int day; Time t; //(1)含有其他对象成员的类 public date(int year, int

扣响C#之门笔记-第十章

10.1派生类的对象和基类的关系 (1)is A 关系(属于关系): 对象是属于类的,因此对象和类是属于关系:子类是属于父类的,因此子类和父类是属于关系: 因为:对象属于类,所以子类对象属于子类: 又因为:子类属于父类,所以子类对象属于父类 10.2 多态的概念 (1)引用符与对象 对象:对象是实存放对象实体的,是存储在堆中: 引用符:引用符中存放的是对象在堆中的地址,是存放在栈中: 有前面理论:子类对象属于父类,所以父类引用符可以指向子类对象: 也即是说: (a)子类实例(引用,对象)可以赋值

SQL必知必会 笔记 第十九章 使用存储过程

19.1存储过程 存储过程:为以后的使用而保存的一条或多条SQL语句的集合.可将其视为批文件,虽然它们的作用不仅限于批处理. 19.2为什么要使用存储过程 使用存储过程的理由 (1)通过把处理封装在容易使用的单元中,简化复杂的操作. (2)由于不要求反复建立一系列处理步骤,保证了数据的一致性. (3)简化对变动的管理. (4)因为存储过程通常以编译的形式存储,所以DBMS为处理命令所做的工作较少.提高了性能. (5)存在一些只能用在单个请求中的SQL元素和特性,存储过程可以使用它们来编写功能更强

49. 蛤蟆的数据结构笔记之四十九图的连通性问题

49. 蛤蟆的数据结构笔记之四十九图的连通性问题 本篇名言:"我们不得不饮食.睡眠.游惰.恋爱,也就是说,我们不得不接触生活中最甜蜜的事情:不过我们必须不屈服于这些事物 .....--约里奥?居里"     此篇就作为数据结构入门笔记的最后一篇吧. 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/47135259 设图G=(V,E)是一个无向图,G的一个连通分支是一个最大的连通子图,即一个连通分支是不包含在任何更大的

Android学习笔记二十九之SwipeRefreshLayout、RecyclerView和CardView

Android学习笔记二十九之SwipeRefreshLayout.RecyclerView和CardView 前面我们介绍了AlertDialog和几个常用的Dialog,ProgressDialog进度条提示框.DatePickerDialog日期选择对话框和TimePickerDialog时间选择对话框.这一节我们介绍几个新的API控件SwipeRefreshLayout.RecyclerView和CardView,这几个API控件都是google在Android5.0推出的.下面我们来学

Android群英传笔记——第十二章:Android5.X 新特性详解,Material Design UI的新体验

Android群英传笔记--第十二章:Android5.X 新特性详解,Material Design UI的新体验 第十一章为什么不写,因为我很早之前就已经写过了,有需要的可以去看 Android高效率编码-第三方SDK详解系列(二)--Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能 这一章很多,但是很有趣,也是这书的最后一章知识点了,我现在还在考虑要不要写这个拼图和2048的案例,在此之前,我们先来玩玩Android5.X的新特性吧!

《Javascript权威指南》学习笔记之十九--HTML5 DOM新标准---处理文档元信息和管理交互能力

一.了解DOM 1.DOM是Document Object Model的缩写,即文档对象类型,是文档在内存中的表示形式,是一个应用程序接口,定义了文档的逻辑结构以及一套访问和处理文档的方法. 2.HTML DOM与Core DOM的区别:前者提供了大量的方法和属性,与现有的程序模型一致,更便于脚本的编写者控制. 二.document对象 使用window.document属性返回一个document对象,代表当前window内加载的文档.window可以省略.winName.document返回