StringBuilder

知识回顾

string是特殊的引用,每次重新赋值或者拼接时会分配新的内存空间,如果一个字符串经常改变会非常浪费空间。

StringBuilder

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

主要解决的问题是:

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

使用前,需要引用命名空间。

初始化,直接指明内容

StringBuilder str = new StringBuilder("123123123");
Console.WriteLine(str);

容量

//StringBuilder存在一个容量的问题,每次往里面增加时 会自动扩容
//获得容量
Console.WriteLine(str.Capacity);
//获得字符长度
Console.WriteLine(str.Length);

增删查改替换

//增
str.Append("4444");
Console.WriteLine(str);
Console.WriteLine(str.Length);
Console.WriteLine(str.Capacity);

str.AppendFormat("{0}{1}", 100, 999);
Console.WriteLine(str);
Console.WriteLine(str.Length);
Console.WriteLine(str.Capacity);
//插入
str.Insert(0, "唐老狮");
Console.WriteLine(str);
//删
str.Remove(0, 10);
Console.WriteLine(str);
//清空
//str.Clear();
//Console.WriteLine(str);
//查
Console.WriteLine(str[1]);
//改
str[0] = 'A';
Console.WriteLine(str);
//替换
str.Replace("1", "唐");
Console.WriteLine(str);

//重新赋值 StringBuilder
str.Clear();
str.Append("123123");
Console.WriteLine(str);
//判断StringBuilder是否和某一个字符串相等
if( str.Equals("12312") )
{
    Console.WriteLine("相等");
}

请描述string和stringbuilder的区别

1.string相对stringbuilder 更容易产生垃圾 每次修改拼接都会产生垃圾

2.string相对stringbuilder 更加灵活 因为它提供了更多的方法供使用
 

如何选择他们两
需要频繁修改拼接的字符串可以使用stringbuilder
需要使用string独特的一些方法来处理一些特殊逻辑时可以使用string

如何优化内存

内存优化 从两个方面去解答 

1.如何节约内存

2.如何尽量少的GC(垃圾回收)

少new对象 少产生垃圾

合理使用static 

合理使用string和stringbuilder

相关推荐

  1. StringBuilder

    2024-07-14 13:32:05       19 阅读
  2. StringBuilder

    2024-07-14 13:32:05       16 阅读
  3. StringBuilder和Stringjoiner

    2024-07-14 13:32:05       46 阅读
  4. C#的StringBuilder方法

    2024-07-14 13:32:05       50 阅读
  5. string和stringbuilder

    2024-07-14 13:32:05       41 阅读
  6. String、StringBuilder、StringBuffer

    2024-07-14 13:32:05       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-14 13:32:05       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-14 13:32:05       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-14 13:32:05       57 阅读
  4. Python语言-面向对象

    2024-07-14 13:32:05       68 阅读

热门阅读

  1. python-生成器generator

    2024-07-14 13:32:05       20 阅读
  2. ACE之ACE_Handle_Set

    2024-07-14 13:32:05       20 阅读
  3. 微服务有哪些组件?

    2024-07-14 13:32:05       18 阅读
  4. LVM调整VG和PV

    2024-07-14 13:32:05       23 阅读
  5. docker部署sentinel

    2024-07-14 13:32:05       20 阅读
  6. 在Spring Boot中集成分布式日志系统

    2024-07-14 13:32:05       31 阅读
  7. PHP FTP: A Comprehensive Guide

    2024-07-14 13:32:05       24 阅读
  8. 深入解析std::string的设计哲学【C++、STL库】

    2024-07-14 13:32:05       20 阅读
  9. 常用几种远程控制协议总结(telnet,rlogin,ssh,rfb,rdp)

    2024-07-14 13:32:05       18 阅读
  10. Rockchip RK3588 - 从零开始制作recovery系统

    2024-07-14 13:32:05       20 阅读
  11. 护网HW面试—apache&iis&nginx中间件解析漏洞篇

    2024-07-14 13:32:05       28 阅读
  12. 响应状态码

    2024-07-14 13:32:05       23 阅读
  13. python生成器与迭代器

    2024-07-14 13:32:05       27 阅读