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();
}
}
}
C#使用控制台应用程序进行StringBuilder类的常用方法的练习
最新推荐文章于 2025-05-28 09:39:01 发布