【C#】字符串操作

举报
Laura_张 发表于 2022/08/27 00:23:29 2022/08/27
【摘要】 文章目录 简单介绍把字符串变成字符数组其他类型转换成字符串类型把字符串变成小写 大写 忽略大小写比较切割字符串中不想要的字符替换字符串中的子字符串判断字符串中是否包含子字符串从某个位置通过索引截取...


简单介绍

string可以看做是char的只读数组

字符串的特性:不可变性,字符串一旦声明就不再可以改变,所以只能通过索引来读取指定位置的char,不能对指定位置的char进行修改

如果要对char进行修改,那么就必须创建一个新的字符串,用s.TocharArray()方法来得到字符串的char数组,对数组进行修改后,调用new string (char[])这个构造函数来创建char数组的字符串。一旦字符串被创建,那么char数组的修改也不会造成字符串的变化。

在这里插入图片描述

把字符串变成字符数组

#region 字符串
//string可以看做是char的只读数组
            string text = "哈哈,小杨又变帅了";

            char [] chs = text.ToCharArray ();//变成字符数组
            chs[5] = '很';//改值
            text = new string(chs);//变成新的字符串
            Console.WriteLine(text);

           //首先把这个字符串变成字符数组,改变里面某一项的值,最后把这个字符数组变成字符串
            //要把这个字符数组里面的内容最后全部变成一个字符串
            Console.ReadKey();
 #endregion 

其他类型转换成字符串类型

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

			int num=10;
            string s=num.ToString();
            Csonsole.ReadKey();

把字符串变成小写 大写 忽略大小写比较

在这里插入图片描述

#region 字符串转换成小写(大写)的方法
            //输入喜欢的课程名称,判断是否一致,一致就输出客户才能,不一样就都输出课程
            Console.WriteLine("输入第一门课程");
            string str1 = Console.ReadLine();
            str1=str1.ToLower();//把字符串转换成小写的
			  //str1 = str1.ToUpper();//把字符串都转换成大写的
            Console.WriteLine("输入第二门课程");
            string str2 = Console.ReadLine();
            if(str1==str2)
            {
                Console.WriteLine("课程一样"+str1);
            }
            else
            {
                Console.WriteLine("课程不一样{0}------{1}",str1,str2);
            }
            Console.ReadLine();
 #endregion
#region 忽略大小写的比较
          //输入喜欢的课程名称,判断是否一致,一致就输出客户才能,不一样就都输出课程
            Console.WriteLine("输入第一门课程");
            string str1 = Console.ReadLine();
            Console.WriteLine("输入第二门课程");
            //str1=str1.ToLower();//把字符串转换成小写的
            //str1 = str1.ToUpper();//把字符串都转换成大写的
            
            string str2 = Console.ReadLine();

            //忽略大小写比较,返回bool值类型,一样的返回true
            bool result = str1.Equals(str2, StringComparison.OrdinalIgnoreCase);
            if (result)
            {
                Console.WriteLine("课程相同");
            }
            else
            {
                Console.WriteLine("课程不同");
            }
            Console.ReadKey();
#endregion

切割字符串中不想要的字符

#region 移除字符串中不想要的内容

            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();
#endregion 
#region 切掉前后空格
            //Console.WriteLine("请输入你的账号");
            //string name = Console.ReadLine();
            string name = " yhb@itcast.cn ";
            name = name.Trim();//切掉了前后空格
            Console.Write(name);
            Console.ReadKey();
#endregion 
#region 移除字符串的方法
            string str = " ";//这种情况是空的,没有东西
            bool result=string.IsNullOrEmpty(str);
            if (result)
            {
                Console.WriteLine("有东西");
            }
            else
            {
                Console.WriteLine("你猜");
            }
            string text = "老苏果然很邪恶";
            text = text.Remove(5, 2);//从某个地方开始移除,移除多少个字符
            Console.WriteLine(text);
            Console.ReadKey();
            Console.ReadKey();
#endregion 

替换字符串中的子字符串

 #region  替换字符或者字符串Repalce
            string name = "小样很邪恶!";
            name = name.Replace('很', '不');
            Console.WriteLine(name);
            Console.ReadKey();
 #endregion 

判断字符串中是否包含子字符串

#region  替换字符或者字符串,判断这个字符串中是否包含子字符串 
            string name = "小样很邪恶!";
            //name = name.Replace('很', '不');
            //使用replace方法来替换字符,前面是本来存在的字符,后面是要修改的字符。
            //Console.WriteLine(name);
            //Console.ReadKey();

            bool result = name.Contains("邪恶");//判断这个字符串中是否包含子字符串
            if (result)
            {
                name = name.Replace("邪恶", "纯洁");//使用replace进行字符替换
                Console.WriteLine(name);                
            }
            else
            {
                Console.WriteLine(name);
            }
            Console.ReadKey();
 #endregion 

从某个位置通过索引截取字符串

			 string str = "哈哈,小杨又变帅了";
            //str=str.Substring(4);//从第4位开始截取
            str = str.Substring(3, 6);//截取3到6位,截取的长度不能超过字符串的长度

           string path = @"E:\C#项目\3Day\小样.exe";
            //string str = path.Substring(path.Length - 6);//第一种方法,截取部分长度
            //char[] chs = new char[] { '\\' };
            string[] str = path.Split(new char[] { '\\' },StringSplitOptions.RemoveEmptyEntries);//去掉空白项
            Console.WriteLine(str[str.Length - 1]);
            //Console.WriteLine(chs);
            Console.ReadKey();

找某个字符串的索引

 #region  找字符串的索引
            string str = "abcjsjkkdk";
            //int index = str.IndexOf("的");//如果这个字符串在这个字符串中,那么就会把这个字符串的索引显示出来,如果找不到,那么返回的结果是-1
            //int index = str.IndexOf("s", 0);//找一个字符串,从某个字符串开始找,找到了就返回索引。找不到就返回-1
           int index = str.LastIndexOf("j");//找最后一个字符串的索引
            Console.WriteLine(index);
            Console.ReadKey();
 #endregion 
#region 判断字符串是否以某个字符串开始,以某个字符串结束,是否有这个字符串
            string str = "小样很纯洁";

            //bool result = str.StartsWith("小样");//判断字符串是否以某个字符串开始的
            bool result = str.EndsWith("纯洁");//判断是否以某个字符串结束的
            str.Contains("小");//判断这个字符串中是否有某个字符串

            if (result)
            {
                Console.WriteLine("有这个字符串");
            }
            else
            {
                Console.WriteLine("没有这个字符串");
            }
            Console.ReadKey();
 #endregion 

索引处插入字符串

#region 索引处插入字符串
            string str = "哈哈,我变帅了";
            str = str.Insert(7, "!");//在某个索引处插入字符串
            Console.WriteLine(str);
            Console.ReadKey();
 #endregion

应用

 #region 接收用户输入的字符串,将其中的字符与输入相反的顺序输出
            Console.WriteLine("输入内容");
            string text = Console.ReadLine();

            for (int i=text.Length -1;i>=0;i--)
            {
                Console.Write(text[i]);
            }
            Console.ReadKey();
 #endregion
 #region 接收用户输入的英文,将其单词反向输出
            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();
 #endregion
 #region 从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();
#endregion 
 #region 用户输入内容,判断是否有邪恶,有的话变成**
            Console.WriteLine("输入内容");
            string text = Console.ReadLine();
            if (text.Contains("邪恶"))//判断输入的内容中是否有邪恶
            {
                Console.WriteLine(text.Replace ("邪恶","**" ));//替换成**
            }
            else
            {
                Console.WriteLine(text);
            }
            Console.ReadKey();
#endregion 
#region 添加内容,使用join
            string[] names = { "诸葛亮", "老苏", "卡卡西", "鸟叔", "凤姐" };
            string st = string.Join("->", names);
            Console.WriteLine(st);
            Console.ReadKey();
 #endregion 
//找出字符串的位置
#region 用户输入一句话,找到所有e的位置
            string st = "andhieenohfefneifoheifeeeeekekkf";
            int index = st.IndexOf("e");
           while (index!=-1)
            {
                Console.WriteLine("第{0}个e的索引为:{0}",index);
                index = st.IndexOf("e", index + 1);
            }
            Console.WriteLine();
            Console.ReadKey();
#endregion 
#region  读文件的位置
             //找到文本文件的路径
             string path = @"E:\C#项目\3Day\Program.txt";
             //读取这个文本文件,是一行一行的读
             string[] text = File.ReadAllLines(path,Encoding.Default);

             Console.ReadKey();
#endregion

##感谢阅读,欢迎斧正~

文章来源: blog.csdn.net,作者:张艳伟_Laura,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/Laura__zhang/article/details/110879815

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。