20250530-C#知识:String与StringBuilder
String与StringBuilder
string字符串在开发中经常被用到,不过在需要频繁对字符串进行增加和删除时,使用StringBuilder有利于提升效率。
1、String
- string是一种引用类型而非值类型(某些方面像值类型)
- 使用“==”进行两个string对象的比较时,会比较内容而非引用地址
- 编译器会缓存相同字面量的字符串(如 “abc”),多个变量可能指向同一内存对象
string x = "abc";
string y = "abc";
Console.WriteLine(object.ReferenceEquals(x, y)); // 输出 True(同一对象)
以下是string类的常用方法(由AI生成):
2、StringBuilder及代码示例
- 解决String字符串修改时在堆中反复分配新内存空间的问题
- 使用前引入命名空间 System.Text
using System.Text;namespace LearnString
{internal class Program{static void Main(string[] args){//StringBuilder//解决String字符串修改时在堆中反复分配新内存空间的问题//使用前引入命名空间 System.TextStringBuilder sb = new StringBuilder("12345"); Console.WriteLine(sb.Capacity); //获取容量 16Console.WriteLine(sb.Length); //获取长度 5Console.WriteLine(sb); //12345//普通添加sb.Append("67");//格式化添加sb.AppendFormat("{0:F5}", 3.5);Console.WriteLine(sb); //12345673.50000//指定位置插入sb.Insert(0, "a");Console.WriteLine(sb); //a12345673.50000//删除指定位置字符串sb.Remove(1, 9);Console.WriteLine(sb); //a50000//替换字符sb.Replace('a', 'v');//索引访问,修改字符串sb[sb.Length - 1] = 'c';sb[sb.Length - 2] = 'f';sb[sb.Length - 3] = 'k';Console.WriteLine(sb); //v50kfc}}
}
3、参考资料
- 《唐老狮C#》
本篇结束,感谢您的阅读~