C# StringBuilder

news2025/1/17 3:03:45

StringBuilder位于命名空间System.Text下,使用前需引入

using System.Text;

StringBuilder的构造 

new StringBuilder(string value)

StringBuilder sb1 = new StringBuilder("www.abc.com");

利用构造函数创建一个值为“www.abc.com”的StringBuilder对象

new StringBuilder(int capacity) 

StringBuilder sb2 = new StringBuilder(10);

创建一个空的StringBuilder对象,容量为10个字符

new StringBuilder(string value,int capacity)  

StringBuilder sb3 = new StringBuilder("www.abc.com",10);

创建一个默认值为“www.abc.com”,容量为10个字符的StringBuilder对象

ps:当StringBuilder中的值超过其容量时,StringBuilder会申请一个容量为原来两倍的内存区域并将原有值和新增值拷贝到这一新内存区域,然后回收旧的内存区域

StringBuilder sb = new StringBuilder("abc", 4);
Console.WriteLine(sb.Capacity); //4
sb.Append("def");
Console.WriteLine(sb.Capacity); //8

String和StringBuilder的区别

以在“www.abc.com”后拼接“/123.html”为例

String:

string s = "www.abc.com";
s += "/123.html";
Console.WriteLine(s);

String需要创建一个新的内存区域用于存储拼接后的值并将应用指向新的内存区域,然后回收旧的内存区域

 StringBuilder:

StringBuilder sb = new StringBuilder("www.abc.com", 25);
sb.Append("/123.html");
Console.WriteLine(sb.ToString());

StringBuilder直接在当前内存区域中进行拼接操作,而无需创建新的内存区域(前提是容量足够大)

总结:当需要对字符串频繁进行操作时,StringBuilder效率较高

StringBuilder的方法 

1.StringBuilder.Append(string value):在末尾追加新的字符串

StringBuilder sb = new StringBuilder("www.abc.com");
sb.Append("/123.html"); //www.abc.com/123.html

2.StringBuilder.Insert(int index,string value):在特定位置插入新的字符串

StringBuilder sb = new StringBuilder("www.abc.com");
sb.Insert(0, "http://"); //http://www.abc.com

 3.StringBuilder.Remove(int startIndex,int length):从当前字符串中删除特定字符串

StringBuilder sb = new StringBuilder("www.abc.com");
sb.Remove(0, 4); //abc.com

 4.StringBuilder.Replace(char oldChar,char newChar):替换当前字符串中所有特定字符

StringBuilder sb = new StringBuilder("www.abc.com");
sb.Replace('b','x'); //www.axc.com

 5.StringBuilder.ToString():将StringBuilder中的值转换为不可变的字符串

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/117187.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解决Ubuntu不能上网以及无法远程连接Ubuntu

本文环境 物理机OS: Windows10 专业版 虚拟机平台: VMware Workstation 16 Pro 虚拟机OS: Ubuntu 20.04 相信大家在使用Ubuntu中也有遇到不能上网,我也是尝试了很多的方法都不行,终于找到了一种可行的方法。 步骤…

测试开发应该具备的六大能力

前言 前几天一个前同事找我聊了个问题:一个好的测试开发同学需要具备哪些能力?我思考了一下,给了他如下答复: 从我工作中接触到的测试开发,以及面试测试开发候选人时问的问题,我将自己对测试开发这个岗位…

Chrome插件开发

1.什么是 Chrome 插件 谷歌浏览器插件是一种小型的定制浏览器体验的程序,通过插件可以自定义浏览器的一些行为来适合个人的需求,例如上面的查看服务器状态插件。 在应用商店中下载下来的插件基本上都是以.crx 为文件后缀,该文件其实就是一个…

实验一 课本第三章MongoDB数据库操作3.1-3.7

一、实验目的: 掌握MongoDb的部署 熟悉数据库和集合操作 二、实验环境: 一台运行的计算机 Linux平台 SecureCRT平台 三、实验内容: 3.1MongoDB部署 1.MongonDb部署(windows平台) (1)下载Mongo…

Node环境安装

Node的版本管理工具工具介绍gnvm官网指出特色的地方安装验证配置与使用配置文件内容命令使用nvm安装脚本命令下载请求文件下载验证配置文件使用n安装使用Fast Node Manager (fnm)安装使用工具介绍 本文介绍四款 Node 版本管理工具,用于下载和切换对应的 Node 与 Npm…

【金猿人物展】极盾科技CEO丁杨:让数据安全回归场景、业务和价值

‍丁杨本文由极盾科技CEO丁杨撰写并投递参与“数据猿年度金猿策划活动——2022大数据产业趋势人物榜单及奖项”评选。‍数据智能产业创新服务媒体——聚焦数智 改变商业我们的数据安全,还是以前的安全么?传统数据安全方案依赖网络和数据库安全能力进行围…

2022年安徽建筑八大员(标准员)考试试题及答案

百分百题库提供建筑八大员(标准员)考试试题、建筑八大员(标准员)考试真题、建筑八大员(标准员)证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 22.某设计单位对承接…

Vue2.x + Echarts实现知识图谱数据渲染

代码案例数据写死了&#xff0c;后端Java可使用SpringBootNeo4j查询数据返回。 <template><div id"myChart"></div> </template><style> #myChart {width: 100%;height: 1000px; } </style> <script>export default {nam…

视频号小店是什么?如何开通视频号小店API?

微信视频号于2022年7月正式推出“视频号小店“服务&#xff0c;为商家提供商品信息服务、商品交易&#xff0c;支持商家在视频号运营电商。目前视频号小店有个体工商户或企业资质的商家进行开店&#xff0c;企业店需要企业营业执照认证、个体工商户则需要个体工商户营业执照认证…

Android设计模式详解之模板方法模式

前言 定义&#xff1a;定义一个操作中的算法的框架&#xff0c;而将一些步骤延迟到子类中&#xff0c;使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤&#xff1b; 使用场景&#xff1a; 多个子类有公有的方法&#xff0c;并且逻辑基本相同时&#xff1b;…

Linux环境下挂载外接硬盘

一. 前言 调试ARTIK过程中&#xff0c;首次外接硬盘不会自动挂载&#xff0c;需要将硬盘挂载到系统文件夹下方能读取硬盘内容&#xff0c;因此对于Ubuntu系统下挂载硬盘和开机自动挂载外接硬盘配置的方法进行总结。 二. 挂载外接硬盘步骤 通过命令 fdisk -l 查看硬盘资源信息…

Hive+Spark离线数仓工业项目--ODS层及DWD层构建(2)

ODS层构建&#xff1a;代码导入 目标&#xff1a;实现Python项目代码的导入及配置 实施 Oracle本地驱动目录**&#xff1a;将提供的**instantclient_12_2**目录放入D盘的根目录下 PyHive本地连接配置&#xff1a;将提供的CMU目录放入C盘的根目录下 auto_create_hive_table包…

Java中的Map集合体系

Map集合体系Map集合的概述Map集合体系特点Map集合常用APIMap集合的遍历方式&#xff1a;方式一&#xff1a;键找值方式二&#xff1a;键值对方式三&#xff1a;lambda表达式Map集合的实现类HashMapMap集合的实现类TreeMap集合嵌套Map集合的概述 Map集合概述和使用&#xff1a;…

Java 基础:变量、操作符、代码块和控制流

目录 一、变量&#xff1a;Variables 1、基本数据类型 2、数组 二、操作符/运算符 Operators 三、表达式、语句和代码块 四、程序控制流 一、变量&#xff1a;Variables Java 定义了以下几种变量&#xff1a; 实例变量/成员变量&#xff08;非静态字段&#xff09;&…

Docker+NETCore系列文章(五、推送自制镜像到Docker Hub、阿里云镜像仓库)

推送镜像到Docker Hub镜像仓库 1、访问Docker Hub&#xff1a;https://hub.docker.com/&#xff0c;注册并登陆Docker。 2、使用docker pull hello-world命令拉取hello-workld镜像。 [rootVM-0-6-centos ~]# docker pull hello-world Using default tag: latest latest: Pul…

微服务架构 VS 单体架构

在软件行业&#xff0c;微服务架构是一种重要的发展趋势。这一趋势&#xff0c;不仅仅是对企业内的IT信息系统建设&#xff0c;甚至在企业向数字化转型方面&#xff0c;都有着深远的影响。微服务架构与传统的单体软件架构代表着IT产业处理软件开发方式的一个根本性转变&#xf…

【C++11】异常

&#x1f308;1.C语言传统处理错误的方式 在讲解C的异常机制之前我们先来复习一下传统的处理错误的方式。 传统的错误处理机制&#xff1a; 1.终止程序、如assert , 缺陷&#xff1a;用户难以接受。如发生内存错误&#xff0c;除0错误时就会终止程序。2.返回错误码、缺陷&…

Apache POI导入导出excel文件实战

文章目录前言技术栈1、引入依赖2、导入代码实现3、导出代码实现3.1、准备导出文件模板3.2、导出代码实现4、代码实现解释5、常见问题前言 这两天公司项目业务提出需求&#xff0c;要求在前端上传excel文件然后解析展示&#xff0c;因此写篇文章记录一下实现。 技术栈 spring…

抖音小程序实践三:接口开发指南

通过官方文档可以更系统的学习到所有的接口&#xff0c;我这边罗列一下我自己用到测试过的接口供大家参考。 前端-小程序对接官方文档&#xff1a;https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/api/open-interface/user-information/tt-get-user-info服务端-小…

个人黄金准备与须知

投资黄金可以为自己的资产保值&#xff0c;也可以福泽后人&#xff0c;因此十分符合国人传统文化特点和理财智慧。可是现在市场中可以投资黄金的平台那么多&#xff0c;投资者必须先认真“调查研究”&#xff0c;才能“去芜存菁”&#xff0c;选到值得托付的好平台。 其实投资者…