黑马程序员-string处理的常用方法

---------------------- ASP.Net+Android+IOS开发 .Net培训 、期待与您交流! ----------------------


字符串处理的重要性:应为我们写 ASP.NET WinForm 等任何一个程序都需要对字符串进行处理。网站登录用户名需要去空格、过滤违禁词汇、日志标题截取 …… ,这些都需要对字符串进行处理。那么下面我们来看一下字符串处理常用的方法有哪些

C#中字符串的特性:

1、C#中字符串的长度就是我们看到的长度,这点和C语言不同,不需要考虑最后的’\0’

2、一切类型都可以调用.ToString()方法转换成字符串类型

3、字符串的不可变性,在内存中,字符串一旦生成,将不会改变

1、字符串的定义

           语法:

                      string <name>;

                      <name>=<value>;

                      

                      string <name>=<value>;

             字符串是引用类型,在定义string <name>;的时候,在栈空间中,定义了一个<name>的空间,该空间存放一个地址

            当写到

                      <name>="Hello World!";

             的时候,会在堆内分配一个空间,存放字符串" Hello World!",并将首地址赋值给<name>,因此<name>指向定义的

              字符串

             这里就要提到字符串的不可变性,在内存中,字符串一旦生成,将不会改变

            如果一定要更改字符串中的某个字符,可以使用.ToCharArry()方法

             此方法将字符串复制一份,然后变成一个字符数组,这样就可以更改了

             之后再使用构造函数生成字符串就可以了,当然,后生成的和之前的那个是不同的两个字符串

                   string str = "Hello World!";

                   char[] ch = str.ToCharArray();

                  ch[0]='k';

                  str=new string(ch);

2、字符串可以用索引访问

字符串,原本就是排在一起的字符,C#提供了用下标”(索引)来访问字符串中的字符

例如:

             string str="jiangjun";

             这里内存中将"j"分配编号0"i"分配编号1,然后依次增加。。。。

              因此,如果需要访问u,数一数,编号是6,所以可以这么来

                      char temp=str[6]

             那么得到的就是字符"u",字符串也有一个Length属性,可以得到字符串的长度

3、字符串处理常用方法

      3.1字符串大小写(字符)

                 string <strName>.ToUpper();

                 string <strName>.ToLower();

      例:在等待用户输入的时候,常常不考虑用户输入的用户名大小(或一个程序中规定使用的大小写)

              可以将用户的输入全部转换成小写,或大写再来进行比较

              如:

              Console.WriteLine("请输入用户名:");

              string uid=Console.ReadLine().ToLower();

   3.2 移除首尾指定字符

                 方法原型

                            string <strName>.Trim();             //移除首尾的空格

                            string <strName>.TrimStart();      //移除开头的空格

                            string <strName>.TrimEnd();        //移除结尾的空格

                 如果要指定移除的内容,可添加一个char数组作为参数

                            string <strName>.Trim(char[] ch);

                            //实际操作中,对Char[]中的字符顺序没有关系    

           例:在用户输入的时候,一般不考虑输入两边的空格,而使用Trim()方法

   3.3 字符串的比较

           Compare()方法

                 方法原型

                            int string.Compare(string str1,string str2);

                 按照字典排序比较

                            str1>str2时,返回1

                            str1=str2时,返回0

                            str1<str2时,返回-1

                 注:int string.Compare(string str1,string str2,bool ignoreCase);表示是否区分大小写

                            这里true表示不区分大小写,默认为false

           Equals()方法

                 方法原型

                            bool <strName>.Equals(string str) ;

                 比较如果相等返回true,否则返回false

                 注:bool <strName>.Equals(string str,StringComparison.OrdinalIgnoreCase)表示不区分大小写

           注:如果仅仅比较两个字符串是否相等,还是使用“==”比较简单

            例如:

                      Console.WriteLine("请输入一个字符串");

                      string str1=Console.ReadLine();

                      Console.WriteLine("请输入第二个字符串");

                      string str2=Console.ReadLine();

                      //不考虑大小写的比较

                      bool   isEqual=(str1.ToLower() == str2.ToLower());//运算符的优先级可以不记住,使用()解决问题,这样阅读很方                            便

   3.4 字符串的合并与分割

           合并Join方法

                      将数组strArr中的内容拼接成一个字符串,并在对应数组的每两项间添加分隔符str

                                  string.Join(str,strArr);                                 

           字符串分割的Split()方法

                      方法原型

                                  string[] <strName>.Split(params char[] separator);

                      将字符串<strName> separator数组中的字符分割。分割后得到的内容存到一个数组中

                     string s1 = "aaa,df.dfdf|dfji ";

                    string[] strs = s1.Split(',','.','|');

                    foreach (string item in strs)

                   {

                        Console.WriteLine(item);

                   }

                  输出结果:

                 aaa

                 df

                dfdf

                dfji

                注:返回的数组中可以有空字符串项,如果要去掉这些空字符串,可以使用

               string Split(char[] separator,StringSplitOptions options)将字符串按照指定的char分隔符分割为字符串数组

                (optionsRemoveEmptyEntires的时候移除结果中的空白字符串)

                 string s = "aa,bb,cc,,dd,1,2,3";

                string []strs=s.Split(new char[]{','},StringSplitOptions.RemoveEmptyEntries);

                 当然,此处的char[]{','}中的分隔符可以不止一个。

                如果是以字符串分割的,那么就用new string[]{“字符串”}

                string s = "我是小明我是小天我是小刚";

                string[]strs=s.Split(news tring[]{"我是"},StringSplitOptions.RemoveEmptyEntries);                       

  3.5 字符串查找

           Contains方法

                      方法原型

                          bool <strName>.Contains(string str);

                      表示字符串<strName>中是否包含str,如果包含,返回true,否则返回false

           IndexOf方法

                 常用的两种形式

                            int <strName>.IndexOf(string str);                              //从头开始,str出现第一次的下标

                            int <strName>.IndexOf(string strint startIndex);      //startIndex开始,出现第一次的下标

                             如果没有找到则返回-1

           例:

                      string str="我爱你中国";

                      int res1=str.IndexOf("中国");

                      int res2=str.IndexOf("  ");    //将找不到

                      Console.WriteLine(res1+"\n"+res2);

                 注:LaseIndexOf方法从最后一个开始匹配

  3.6 求子字符串

           方法原型

                 string <strName>.Substring(int startindex,int Length);

           从字符串<strName>startIndex位置开始提取长度为length的字符串,如果省略第二个参数表示一直到最后

                  string s = "http://www.baidu.com";

                 string s1 = s.Substring(7);

                string s2 = s.Substring(7, 3);

                Console.WriteLine(s1);//结果为www.baidu.com

               Console.WriteLine(s2);//结果为www

3.7 字符串的插入、移除和替换

      3.7.1 插入

           在字符串<strName>index位置上插入str,原来的字符依次后移,变成一个新的字符串

                 <strName>=<strName>.Insert(index , str);

           方法原型为:

                 string <strName>.Insert(int index , string str);

      3.7.2 移除

           在字符串<strName>中移除从startIndex开始,长度为length的字符串,剩下的字符按原序合并为一个新的      字符串

                      <strName>=<strName>.Remove(startIndex,length);

           方法原型:

                      string <strName>.Remove(int startIndex,int length);

                 注:如果省略第二个参数,将移除startIndex后面的所有字符串

      3.7.3 替换

           将字符串<strName>中的oldChar替换为newChar

                      <strName>=<strName>.Replace(oldChar,newChar);

           方法原型:

                      string <strName>.Replace(char oldChar, char newChar);

           同样,这个替换的字符也可以是字符串

                      string <strName>.Replace(string oldValue,string newValue);

3.8 判断结束与开始

           判断字符<strName>串是否以某字符串开始或结束

                      bool <strName>.Startswith(string str);

                      bool <strName>.EndsWith(string str);

再次注意:字符串具有不可变性,对字符串的修改,实际上都是重新得到一个字符串,重新赋值


---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值