C#--字符串分割、返回索引值

目录

思维导图

1.字符串与数组的相互转换

2.大小写的转换

3.字符串处理--返回类型为bool类型的

4. 寻找索引值

5.字符串常规处理--返回string类型

6. 分割字符串 : 返回一个字符串数组

 


思维导图

1.字符串与数组的相互转换

            //字符串处理
            string text = "哈哈,我很开心";      //定义一个字符串变量
            Console.WriteLine(text.Length );    //获取字符串的长度,结果为7
            char[] chs=text.ToCharArray();      //将字符串转换成字符数组

            //将“开心”改为“高兴”
            chs[5] = '高';   //改值
            chs[6] = '兴';   //改值

            text = new string(chs);         //将字符数组转换成字符串

            Console.WriteLine(text);        //输出结果:"哈哈,我很高兴"
            Console.ReadKey();

(1)string可以看做是char的只读字符数组。所。以上述text字符串可以变成一个char[]数组。char[] chs=text.ToCharArray();        这是将字符串转换成字符数组
(2)c#中字符串有一个重要的特性:不可变性,字符串一旦声明就不可以在改变。所以只能通过索引来读取指定
位置的char,不能对指定位置的char进行修改。
(3)那么如何改变字符串的内容呢(其实并没有真正意义的改变原字符串)?
过程:string→char数组→改数组值→string
首先,用s. ToCharArray()方法得到字符串的char数组,用chs[i]对数组进行修改,用new string(char[])这个构造函数来将char数组再转变为字符串。   

2.大小写的转换

(1)ToLower():得到字符串的小写形式.
(2)ToUpper():得到字符串的大写形式.
(3)两个字符串不区分大小写的比较:  s1.Equals(s2, StringComparison.OrdinalIgnoreCase),返回的类型为bool类型

注意:字符串是不变的,所以这些函数都不会直接改变字符串的内容,而是把修改后的字符串的值通过函数返回值的形式返回.

            string str1 = ".NET";
            string str2 = ".net";
            str1 = str1.ToLower();   //将.NET转换成大写
            str2 = str2.ToUpper();   //将.net转换成大写
            
            //两个学员输入各自最喜欢的课程名称,判断是否一致,如果相等,则输出你们俩喜欢相同的课程.如果不相同,则输出你们俩喜欢不相同的课程.

            Console.WriteLine("请输入你最喜欢的课程名称");
            string class1 = Console.ReadLine();         //接收输入的课程名称1

            Console.WriteLine("请输入你最喜欢的课程名称");
            string class2 = Console.ReadLine();         //接收输入的课程名称2

            bool result=class1.Equals(class2, StringComparison.OrdinalIgnoreCase);    //忽略大小写的比较
            if (result)                               //返回结果为true
            {
                Console.WriteLine("课程一样");
            }
            else
            {
                Console.WriteLine("课程不一样");       //返回结果为false
            }
            Console.ReadKey();

3.字符串处理--返回类型为bool类型的

(1).判断字符串是否以子串value开始;------bool StartsWith(string value)
(2)判断字符串是否以子串value结束;------bool EndsWith (string value)
(3)判断字符串是否为空(函数用来判断字符串是否为null或者为空,返回类型为bool类型)-----bool result=string.IsNullOrEmpty(str);
(4)判断字符串中是否包含子字符串---contains---返回值bool

            //下面三个方法endswith,startswith和cantains返回值类型都是bool类型的,可以类比学习
            #region 判断某个字符串是否以某个字符开始
            string str = "哈哈,今天很开心";
            bool result = str.StartsWith("哈哈");  //判断字符串是都以“哈哈”开始的

            if (result)
            {
                Console.WriteLine("是以这个字符串开始的");
            }
            else
            {
                Console.WriteLine("不是以这个字符串开始的");
            }
            Console.ReadKey();
            #endregion

            #region 判断某个字符串是否以某个字符结尾
            string str1 = "哈哈,今天真的很开心";
            bool result1 = str.EndsWith("开心");
            if (result)
            {
                Console.WriteLine("是以这个字符串结尾的");
            }
            else
            {
                Console.WriteLine("不是以这个字符串结尾的");
            }
            Console.ReadKey();
            #endregion

            #region 判断某个字符串中是否包含着指定子字符串
            string str2 = "哈哈,今天真的很开心";
            bool result2 = str.Contains("很");
            if (result)
            {
                Console.WriteLine("包含这个字符串");
            }
            else
            {
                Console.WriteLine("不包含这个字符串");
            }
            Console.ReadKey();
            #endregion

             #region 判断某个字符串中是否为空或者未null值
            string str3 = "123445";
            bool result=string.IsNullOrEmpty(str3);   //此函数用来判断字符串是否为null或者为空,返回类型为bool类型
            if (result)
            {
                Console.WriteLine("无任何内容");
            }
            else
            {
                Console.WriteLine("你猜");
            }
            Console.ReadKey();
            #endregion
        }
    }
}


4. 寻找索引值

索引值的函数:分别为indexof(它有两个重载)和LastIndexOf。
作用:在一个字符串中寻找一个子字符出现的位置,也就是它的索引值,如果这个子字符串存在,就返回它的索引值,如果不存在,就返回-1。
下面举例介绍一下三种方法:

            string str = "你好,哈哈,今天天气真好";
            
            //第一种方法:int 返回的索引值=字符串.indexof("要查找的字符串");
            int index = str.IndexOf("今");  //如果这个字符串在这个字符串中,那么就会把这个字符串的索引显示出来,那么,如果找不到这个字符串返回的结果是-1
            Console.WriteLine(index);
            Console.ReadKey();

            //第二种方法:int 返回的索引值=字符串.indexof("要查找的字符串",从哪个索引开始查)
            string str1 = "adfjdslkaddjdffasa";
            int index1 = str1.IndexOf("a",1);    //找一个字符串,从第1个索引开始找,找到了就返回索引值,找不到就返回-1
            Console.WriteLine(index1);
            Console.ReadKey();

            //第三种方法:是找字符串最后出现位置的索引
            string str2 = "哈哈,真的很开心心啊啊啊啊--放的地方-的地方啊-"; //找最后一个字符串的索引
            int index2 = str2.LastIndexOf("-");   //找"-"在字符串中最后出现的最值的索引
            Console.WriteLine(index2);
            Console.ReadKey();

5.字符串常规处理--返回string类型

            //sunstring截取字符串
            string str = "你好啊,今天天气很好呀";
            string result = str.Substring(4);  //子字符串从指定的字符串开始到末尾,参数为起始位置,结果显示”今天天气很好啊“
            string result2 = str.Substring(6,2); //子字符串从指定的字符串开始并且指定字符串长度,第一个参数为起始位置,第二个参数为截取长度,结果显示“天气”


            //remove删除字符串
            string str = "哈哈,今天阳光明媚";
            //str=str.Remove(3);   //返回从指定位置开始删除字符串之后返回的字符串结构,参数为要从哪个位置开始删除,,返回哈哈,
            str = str.Remove(3, 2);   //第一个参数为从哪个位置开始删除,第二个参数为删除几个,返回删除后剩余的字符串,删去今天两字


            //去空--去掉字符串首和尾的空格
            string name = " fdfd@fdf  .cn ";
            name = name.Trim();        //将字符串首尾的空格去除,不包括中间的
            name = name.TrimEnd();     //将字符串尾部的空格去除
            name = name.TrimStart();   //将字符串首部的空格去除

            //字符串替换--replace
            string weather= "今天天气很晴朗";
            weather=weather.Replace("晴朗", "**");       //将晴朗替换为“**”

            //insert在指定位置插入字符
            string str = "哈哈今天天气真好啊";
            str = str.Insert(2, ",");   //在“哈哈”后面加一个“,”
            


6. 分割字符串 : 返回一个字符串数组

先举一个例子大家看一下,下面这个代码,“哈哈----------------你很              聪明“这句话中间多了很多空格和横线,通过split函数可以将这些空格和‘-’去掉,同时,以空格和‘-’为界限,将上述一个完整的字符串变成一个字符串数组。字符串数组中有三个元素,分别为“哈哈”,“你很”,聪明“”。


            string str = "哈哈--------你很           聪明。";
            char[] chr = new char[] {'-',' ' };     //将要分割的内容放在数组当中,在这里分割'-'和空格
            string[] result = str.Split(chr, StringSplitOptions.RemoveEmptyEntries);  //split方法是把字符串中数组里面包含的‘-’和空格去除掉,同时以空格和‘-’作为分割符把字符串分成一个字符串数组,split方法的第二个参数的作用时,当返回值包含空字符串的数组元素时,将空字符数组元素去掉
            for (int i = 0; i < result.Length; i++)
            {
                Console.Write(result[i]);    //将字符串数组遍历输出
            }
            Console.ReadKey();

那么它有什么用呢,通过下面这个例子相信大家能更加理解split这个函数到底是干什么用的???
举例:从Email中提取出用户名和域名:[email protected]。   用户名:abc  域名:163.con
思路:利用split分割字符串,以@作为分割符,将字符串分割为用户名和域名两部分


            string e_mail = "[email protected]";     //定义一个string类型的字符串
            char[] chr = new char[] { '@'};     //定义一个字符数组存放要分割的内容
            string[] result=e_mail.Split(chr,StringSplitOptions.RemoveEmptyEntries);   //从字符串中将@分离,并且去掉结果中的空字符,将结果定义成一个字符串数组
            Console.WriteLine("用户名为为{0},域名为{1}", result[0],result[1]);
            Console.ReadKey();

 

发布了61 篇原创文章 · 获赞 16 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/wtt15100/article/details/104185738