C#使用控制台应用程序进行StringBuilder类的常用方法的练习

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace StringBuilderClassPractise
{
    internal class Program
    {
        static void Main(string[] args)
        {

            /*为什么用 StringBuilder:字符串构建器
             * 当需要高频的大量的构建字符串的时候StringBuilder的性能是要高于直接对字符串进行拼接的
             * 
             * 因为直接使用+或+=都会产生一个新的String实例,因为String对象是不可变的对象,这也就意味着
             * 每次对字符串内容进行操作的时候都会产生一个新的字符串实例,这对大量的进行字符串拼接的场景是非常不友好的。
             * 因此StringBuilder孕育而出。这里需要注意的是,这并不意味着可以用StringBuilder来代替所有字符串拼接的的场景,
             * 这里我们强调一下是  “频繁”  的对  “同一个字符串对象”  进行拼接的操作。
             * 
             * 优点:当需要高频的大量的构建字符串的时候StringBuilder的性能是要高于直接对字符串进行拼接的
             * 缺点:1、每次使用都需要实例化;2、需要较为精确估算出StringBuilder类型变量的长度,否则若在使用中实际
             * builder长度超出了定义的长度,会自动开辟一段新的StringBuilder空间,并将原先的数据赋值给新的空间,旧的地址就变成了垃圾。
             */

            #region  Append:向 StringBuilder 后面追加字符串
            public StringBuilder Append(object value);

            StringBuilder sbAppend = new StringBuilder();
            sbAppend.Append("Hello");
            sbAppend.Append(" ");
            sbAppend.Append("Word!");
            Console.WriteLine(sbAppend.ToString());
            #endregion

            #region Insert:向 StringBuilder 内插入数据
            public StringBuilder Insert(int index, object value);  //index索引位置,object value对象数据

            StringBuilder sbInsert = new StringBuilder("HelloWord!");
            sbInsert.Insert(5, "_我是插入的字符_");
            Console.WriteLine(sbInsert.ToString());
            #endregion

            #region Remove:删除字符串
            public StringBuilder Remove(int startIndex, int length); //第一个参数 startIndex 是删除字符的起始位置;第二个参数 length 是要删除的长度

            StringBuilder sbRemove = new StringBuilder("HelloWord!");
            sbRemove.Remove(5, sbRemove.Length - 5);
            Console.WriteLine(sbRemove.ToString());
            #endregion

            #region Replace:替换字符串,这里有两个重载,下面用两个案例来阐述。

            /*
             * 案例1:将旧的字符串,替换新的字符串
             * public StringBuilder Replace(char oldChar, char newChar);
             * 第一个参数 oldChar 是旧的字符串;第二个参数 newChar 是你要替换的字符串
             */
            StringBuilder sbReplace= new StringBuilder("HelloWord!");
            sbReplace.Replace("Hello", "Happy");
            Console.WriteLine(sbReplace.ToString());

            /*案例2
             * public StringBuilder Replace(char oldChar, char newChar, int startIndex, int count);
             * 第一个参数 oldChar 是旧的字符串;第二个参数 newChar 是你要替换的字符串;第三个参数 startIndex  子字符串开始的位置;第四个参数 count 子字符串的长度
             * 结果:对此实例的引用,其中从 startIndex 到 startIndex + count -1 范围内的 oldChar 被 newChar 替换。
             */
            StringBuilder sbReplace2 = new StringBuilder("年轻人不讲武德,来骗,来偷袭,我一个69岁的老同志,今年我可69岁了!");
            Console.WriteLine(sbReplace2.Replace("69", "79", 18, 2).ToString());
            Console.WriteLine(sbReplace2.Replace("69", "79", 18, 14).ToString());
            #endregion

            Console.ReadLine();
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值