C#(一)-字符串的处理

前言

刚开始还有点跟不上小杨老师的速度,主要还是刚开始C#的学习还不够熟练,小杨老师说的对,不能光指着课上讲的,课下自己要多加练习。

知识点

1.string可以看作是char的只读数组。char c = s[1];.例子:遍历string中的每个元素。
2.C#中字符串有一个重要的特性:不可变性,字符串一旦声明就不再可以改变。所以只能通过索引来读取指定位置的char,不能对指定位置的char进行修改。
3.如果要对char进行修改,那么就必须创建一个新的字符串,用s.ToCharArray()方法得到字符串的char数组,对数组进行修改后,调用new string(char[])这个构造函数(暂时不用细研究)来创建char数组的字符串。一旦字符串被创建,那么char数组的修改也不会造成字符串的变化。例子:将字符串中的A替换为a。
4.string str = null与string str = ""说明其中的区别?
string str = null是不给他分配内存空间,而string str = "“给它分配长度为空字符串内存空间。string str = null没有string对象,string str =”"有一个字符串对象。
5.StringBuilder和String的区别?
String在进行运算时(如赋值、拼接)会产生一个新的实例,而StringBuilder则不会。所以在大量字符串拼接或频繁对某一字符串进行操作时,最好使用StringBuilder,不要使用String.
如果操作一个不断增长的字符串,尽量不用String类,改用StringBuilder类。

练习

1.随机输入你心中想到的一个名字,然后输出它的字符串长度 Length:可以得到字符串的长度。

Console.WriteLine("输入你心中想到的名字");

            string name = Console.ReadLine();

            Console.WriteLine(name.Length);
            Console.ReadKey();

2.两个学员输入各自最喜欢的课程名称,判断是否一致,如果相同,则输出你们俩喜欢相同的课程,如果不相同,则输出你们俩喜欢不同相同的课程。

Console.WriteLine("输入第一门课程");

            string str1 = Console.ReadLine();
            Console.WriteLine("输入第二门课程");

            string str2 = Console.ReadLine();
            if(str1==str2)
            {
                Console.WriteLine("课程一样" + str1);
            }
            else
            {
                Console.WriteLine("课程不同{0}-----------{1}", str1, str2);
            }
            Console.ReadKey();
转换成小写再比较:
str1=str1.ToLower(); 
str2=str2.ToLower(); 
转换成大写再比较:
str1 = str1.ToUpper();
str2 = str2.ToUpper();
忽略大小写的比较:
string str1 = Console.ReadLine();
            Console.WriteLine("输入第二门课程");
         
            string str2 = Console.ReadLine();
           

            bool result = str1.Equals(str2, StringComparison.OrdinalIgnoreCase);
            if(result)
            {
                Console.WriteLine("课程相同");
            }
            else
            {
                Console.WriteLine("课程不相同");
            }
          
            Console.ReadKey();

3.移除字符串中不想要的内容

string str = "哈---哈,我 又  变  帅  了";
            char[] chs = new char[] { ' ', '-' };
               string[] result = str.Split(chs,StringSplitOptions.RemoveEmptyEntries);

            for (int i = 0; i< result.Length; i++)
            {
                Console.Write(result[i]);  
            }



            Console.ReadKey();

移去字符串中不想要的内容,然后显示年月日:
            string date = "2012-----------11-------02";
            char[] chs = new char[] { '-' };
            string[] time = date.Split(chs, StringSplitOptions.RemoveEmptyEntries);

            Console.WriteLine("{0}年{1}月{2}日", time[0], time[1], time[2]);
       
            Console.ReadKey();

4.把字符串中某些字符或者字符串替换掉:

string name = "小杨很邪恶";
            name = name.Replace('很','不');
            Console.WriteLine(name);
            Console.ReadKey();

           string name = "小杨很邪恶";
          
            name = name.Replace("小杨", "老大");
            Console.WriteLine(name);
            Console.ReadKey();

5.判断字符串中是否包含子字符串:

string name = "小杨很邪恶";
         
            bool result = name.Contains("小杨");
                if (result)
            {
                Console.WriteLine("字符串中包含这个字符串");

            }
                else
            {
                Console.WriteLine("不包含这个字符串");
            }
               
            Console.ReadKey();

还有一种:
 bool result = name.Contains("小杨");
                if (result)
            {
                name=name.Replace("邪恶", "纯洁");
                Console.WriteLine(name);

            }
                else
            {
                Console.WriteLine(name);
            }
               
            Console.ReadKey();

7.找到某个字符串索引再截取:

string str = "哈哈,小杨又变帅了";
            str=str.Substring(3,6);//截取字符串,不能超出字符串的长度,否则会报错。
            Console.WriteLine(str);
            Console.ReadKey();

倒着截取:   
string path = @"C:\Users\15128\Desktop";
            string str = path.Substring(path.Length - 7);
            Console.WriteLine(str);
            Console.ReadKey();

可以把Desktop截取了。

以\为单位截取:
   string path = @"C:\Users\15128\Desktop";
            string[] str = path.Split(new char[] { '\\' });
            Console.WriteLine(str[str.Length - 1]);
            Console.ReadKey();

7.判断字符串是否以某个字符串开始:

string str = ("小杨很纯洁");
            bool result = str.StartsWith("小");
            if (result)
            {
                Console.WriteLine("有这个字符串");
            }
            else
            {
                Console.WriteLine("没有这个字符串");
            }
            Console.ReadKey();
判断字符串是否以某个字符串结束:
                string str = ("小杨很纯洁");
           
           bool result = str.EndsWith("洁");
            
            if (result)
            {
                Console.WriteLine("有这个字符串");
            }
            else
            {
                Console.WriteLine("没有这个字符串");
            }
            Console.ReadKey();

8.找字符串的索引:

string str = ("小杨很纯洁");
           int index = str.IndexOf("纯");*///如果这个字符串在这个字符串中,那么就会把这个字符串的索引显示出来,那么,如果找不到这个字符串返回的结果是-1
            
            Console.WriteLine(index);
            Console.ReadKey();

找最后一个字符串的索引:
              string str = "fdsafonfdnfisf";
            int index = str.LastIndexOf("f");
            Console.WriteLine(index);
            Console.ReadKey();
截取文件名:
               string path = @"C:\Program Files(x86)\Thunder Network\Thunder\Program\Thunder.exe -StartType:DesktopIcon";
            int index = path.LastIndexOf("\\");
            string st = path.Substring(index + 1);
            Console.WriteLine(st);
            Console.ReadKey();

在指定的索引处添加字符串:
             string st = "哈哈,我变帅了"
            st = st.Insert(7, "又");
            Console.WriteLine(st);
            Console.ReadKey();

方法

1.接收用户输入的字符串,将其中的字符以与输入相反的顺序输出。

Console.WriteLine("输入内容");
            string text = Console.ReadLine();
            for(int i = text.Length -1;i>=0;i--)
            {
                Console.Write(text[i]);
            }
            Console.ReadKey();

2.接收用户输入的一句英文,将其中的单词以反序输出。

Console.WriteLine("输入一句话");
            string text = Console.ReadLine();
            string[] strs = text.Split();
            string st = "";
            for(int i =strs.Length -1;i>=1;i--)
            {
                st += strs[i] + " ";
            }
            Console.WriteLine(st + strs[0]);
            Console.ReadKey();

3.从Email中提取出用户名和域名:abc@163.com

string email = "abc@163.com";
            string[] sts = email.Split('@');

            Console.WriteLine("用户名是{0}", sts[0]);
            Console.WriteLine("域名是{0}", sts[1]);
            Console.ReadKey();

4.让用户输入一句话,判断这句话中有没有邪恶,如果有邪恶就替换成这种形式然后输出:

Console.WriteLine("请输入你想到的一句话");
            string text = Console.ReadLine();

            if (text.Contains("邪恶"))
            {
                Console.WriteLine(text.Replace("邪恶", "**"));
            }
            else 
            {
                Console.WriteLine(text);
            }
            Console.ReadKey();

5.把{“诸葛亮”,“鸟叔”,“卡卡西”,“卡哇伊”}变成诸葛亮|鸟叔|卡卡西|卡哇伊,然后再把|切割掉:

        string[] names = { "诸葛亮", "鸟叔", "卡卡西", "卡哇伊" };
            string st = string.Join("", names);
            Console.WriteLine(st);
            Console.ReadKey();

6.从某个地方开始移除,移除多少个字符串:

string text = "老杨果然很邪恶";
            text = text.Remove(5, 2);
            Console.WriteLine(text);
            Console.ReadKey();
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值