c#StringBuilder

StringBuilder概念

c#提供的一个用于处理字符串的公共类

主要解决的问题是

修改字符串而不创建新对象 ,需要频繁修改和拼接的字符串可以使用它,可以提升性能

使用前,需要引用命名空间。using System.Text;

也会产生垃圾,但比string要生成的频率少

cs 复制代码
StringBuilder str = new StringBuilder("123123123");//也有给出容量参数的重载函数
Console.WriteLine(str);

它存在一个容量问题,每次往里增加时,会自动扩容 预先准备好一个空间存放。

获得容量

cs 复制代码
Console.WriteLine(str.Capacity);

获得字符长度

cs 复制代码
Console.WriteLine(str.Length);

增加

cs 复制代码
str.Append("44");//往后面加东西
Console.WriteLine(str.Capacity);
Console.WriteLine(str.Length);
cs 复制代码
str.AppendFormat("{0}{1}",100,333);//拼接增加
//此时超容量了,之前是16容量 就被当作 垃圾了
Console.WriteLine(str.Capacity);
Console.WriteLine(str.Length);

插入

cs 复制代码
str.Insert(0, "shan");
Console.WriteLine(str);

cs 复制代码
str.Remove(1,3);
Console.WriteLine(str);

清空

cs 复制代码
 str.Clear();

cs 复制代码
Console.WriteLine(str[0]);

替换

cs 复制代码
str.Replace("1","shan");

重新赋值StringBuilder

cs 复制代码
str.Clear();
str.Append("123123");
Console.WriteLine(str);

判断StringBuilder和另一个字符串是否相等

cs 复制代码
if (str.Equals("123123"))
{
    Console.WriteLine("相等");
}

注意:

Append.AddFormat中第一个参数 "{0}{1}"string 类型(格式字符串)。

第二个及之后的参数 100333int 类型(但会被当作 object 处理,因为 AppendFormat 重载的参数是 params object[])。

AppendFormat 内部会:

  1. 解析格式字符串,用提供的参数替换 {0}{1} 等占位符(调用参数的 ToString() 方法)。

  2. 将生成的最终字符串追加到当前 StringBuilder 中。

所以 AppendFormat 加入的实质是 :经过格式化后的字符串(但它是通过参数动态生成的)。

相关推荐
A_aspectJ11 小时前
【Java基础开发】基于 Java Swing +MySQL + JDBC 版实现图书管理系统
java·开发语言·mysql
Gary Studio11 小时前
安卓HAL编译流程
开发语言·python
我是无敌小恐龙11 小时前
Java SE 零基础入门Day06 方法重载+Debug调试+String字符串全套API详解(超全干货)
java·开发语言·人工智能·python·transformer·无人机·量子计算
AI+程序员在路上11 小时前
Qt6读取rtsp视频流的几种方法
开发语言·qt6.3
码农飞哥11 小时前
从Java后端到AI应用开发,我这两年做了什么
java·开发语言·人工智能
胡童嘉11 小时前
C语言考研《谭浩强C语言》教材第一章理论+实践汇总
c语言·开发语言·考研
初心未改HD11 小时前
Go语言Slice切片底层原理深度解析
开发语言·golang
程序员三明治11 小时前
【AI】Java 调用大模型 API 实战:从 OpenAI 协议到 SiliconFlow 流式响应解析
java·开发语言·人工智能
世界尽头与你11 小时前
Go 语言高级函数特性
开发语言·golang
小小de风呀11 小时前
de风——【从零开始学C++】(三):类和对象(中序):默认成员函数全解析
开发语言·c++