c#入门第十二课对字符串操作

这篇博客介绍了C#中字符串的特性,强调其作为不可变引用类型,详细讲解了如Compare、Contains、Remove等操作,并展示了如何通过string.Concat和CopyTo进行字符串合并与复制。此外,还重点提及了在处理大量字符串操作时,StringBuilder如何实现对字符串的直接修改,以避免创建多余垃圾对象的问题。
摘要由CSDN通过智能技术生成

字符串是特殊的引用类型,无法被修改
字符串可以当做字符数组使用,但是只能读不能写
字符串可以进行+,+=运算,但不能-,-=运算

如果要修改字符串中的内容,需要一些特殊的操作
string.Compare 比较字符串的内容,判断字符串某些字符是否相等.
Contains 返回一个值,该值只是指定的子串是否出现在字符串中.
Remove 返回指定数量字符在当前这个实例起始点在已删除的指定的位置的新字符串
string.Concat 把多个字符串实例合并为一个实例
CopyTo 把从选定的下标开始的特定数量的字符复制到数组的一个全新实例中
Format 格式化包含各种值的字符串和如何格式化每个值的说明符
IndexOf 定位字符串中第一次出现某个给定子字符串或字符的位置
Index0fAny 定位字符串中第一次出现某个字符或一组字符的位置
Insert 把一个字符串实例插入到另一个字符串实例的指定索引处
等等……
以下为实例:

            //相等0  不相等不是0
            string str = "sdferrgwg";
            int n = string.Compare(str, "sdferrgwg");
            Console.WriteLine(n);

            //是否包含
            str = "asads";
            bool b = str.Contains("as");
            Console.WriteLine(b);

            //删除  str索引,长度
            str = "sfasegr";
            str = str.Remove(3, 1);
            Console.WriteLine(str);

            //合并
            str = string.Concat("abc", "def", "qwe");
            Console.WriteLine(str);

            //拷贝  str索引,目标字符数组,目标索引,长度
            str = "abcde";
            char[] cs = new char[10];
            str.CopyTo(1, cs, 0, 3);
            Console.WriteLine(cs);

            //Format用法较多,请单独搜索

            //查找字符串返回索引
            str = "abcdefbc";
            n = str.IndexOf("bc");
            Console.WriteLine(n);

            //查找任意字符串返回索引
            str = "abcdef";
            n = str.IndexOfAny(new char[] { 'b', 'e' });
            Console.WriteLine(n);

            //插入  索引 内容
            str = "abcde";
            str = str.Insert(1, "110");
            Console.WriteLine(str);

            //合并字符串数组 分隔符,字符串
            str = string.Join(",", new string[] { "abc", "bcd", "def" });
            Console.WriteLine(str);

            //查找字符串返回最后一次出现的位置索引
            str = "abcdebc";
            n = str.LastIndexOf("bc");
            Console.WriteLine(n);

            //LastIndexOfAny同理

            //左侧填充空格
            str = "abcde";
            str = str.PadLeft(10);
            Console.WriteLine(str);

            //右侧PadRight同理

            //替换
            str = "abcde";
            str = str.Replace("bc", "00");
            Console.WriteLine(str);

            //拆分
            str = "abc,def,ggg";
            string [] strs = str.Split(',');
            Console.WriteLine(strs[1]);

            //截取字符串 索引 长度 
            str = "abcdef";
            str = str.Substring(1, 3);
            Console.WriteLine(str);

            //转换小写
            str = "DWDdasdWD";
            str = str.ToLower();
            Console.WriteLine(str);

            //转换大写ToUpper同理

            //删除首尾的空白
            str = "  abcdef     ";
            str = str.Trim();
            Console.WriteLine(str);

StringBuilder
因为字符串不能被修改,只能创建新的字符串,之前的就变成了垃圾,在处理很长的字符串时候,就要用到StringBuilder
这时就是真正的对字符串本身进行修改了

//StringBuilder
            StringBuilder sb = new StringBuilder("Hello ");
            sb.Append("Unity!");
            sb.Append("a").Append("b").Append("c");
            sb.Insert(4, "ooooo");
            sb.Remove(4, 5);
            sb.Replace("Unity!", "C#");
            Console.WriteLine(sb.ToString());
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

葬月飘零

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值