博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#中stringBuilding类的使用总结
阅读量:2241 次
发布时间:2019-05-09

本文共 2277 字,大约阅读时间需要 7 分钟。

  StringBuilder到底是是什么。我这里先不说,先说说咱们熟悉的string。

  String就是我们常说的字符串类。但是string类是不可变的,据官方报道,对string类的任何改变,都会返回一个新的string类对象。也就是说,我们每次使用string类中的方法改变字符串时,就要在内存中创建一个新的字符串对象,即需要为新的字符串对象分配新的空间。当我们需要大量的修改字符串时,就会造成一大部分的内存开销,从而浪费的宝贵的内存空间。为此stringBuilder就从一定程度上解决了这样的问题,当修改字符串的时候,他不需要重新创建对象,从而提升了性能。

  既然string类创建字符串使用起来非常 的方便,那么stringBuiler使用起来也不会难道哪里去。它仅仅需要一个重载一个构造函数,既可以初始化创建一个stringBuilder实例。如下:

StringBuilder strB = new StringBuilder("Howare you !");

下面来大概介绍一下我们常用的方法吧。

(一) 设置容量和长度

  之所以上面说stringBuilder类在字符串改变时不会创建新的对象,是因为stringBuilder是动态分配内存的。也正是因为其是动态分配内存,所以在创建stringBuilder对象时最好为其设置好字符串容量大小。这样的话可以免去计算机计算其需要分配的内存,节省了计算时间,提高效率。

Ps:我们这里的容量和字符串的长度是有点区别的。

  例如,在我们创建stringBuilder对象时,字符串“howare you !”长度是13,但是我们可以为stringBuilder创建一个25的容量。当修改后的字符串不到25时,这个对象不会重新分配空间,但是修改的字符串超过25时,其自动将空间翻倍。可以使用stringBuilder的另一个构造函数来解决。

stringBuilderstrB =new stringBuilder(”How are you !” , 25);

  另外后期可以使用stringBuilder的capacity属性来修改,这里不再累述。

(二)Append 方法可用来将文本或对象的字符串表示形式添加到由当前 StringBuilder 对象表示的字符串的结尾处。以下示例将一个 StringBuilder 对象初始化为“Hello World”,然后将一些文本追加到该对象的结尾处。将根据需要自动分配空间。

StringBuilder strB = newStringBuilder("How are you !");StrB.Append("I am fine!");Console.WriteLine(StrB);

此示例将How are you ! I am fine! 显示在窗体上。

(三)AppendFormat 方法将文本添加到StringBuilder 的结尾处,而且实现了 IFormattable 接口,因此可接受格式化部分中描述的标准格式字符串。可以使用此方法来自定义变量的格式并将这些值追加到 StringBuilder 的后面。以下示例使用 AppendFormat 方法将一个设置为货币值格式的整数值放置到 StringBuilder 的结尾。

int MyInt = 25;StringBuilderstrB = newStringBuilder("Your total is ");StrB.AppendFormat("{0:C} ",MyInt);Console.WriteLine(StrB);

此示例将 Your total is $25.00 显示在窗体上。

(四)Insert 方法将字符串或对象添加到当前 StringBuilder 中的指定位置。以下示例使用此方法将一个单词插入到 StringBuilder 的第六个位置。

StringBuilderstrB = newStringBuilder("Hello World!");StrB.Insert(6,"Beautiful ");Console.WriteLine(StrB);

此示例将 Hello Beautiful World! 显示在窗体上。

(五)可以使用 Remove 方法从当前 StringBuilder中移除指定数量的字符,移除过程从指定的从零开始的索引处开始。以下示例使用 Remove 方法缩短 StringBuilder。

StringBuilderstrB = newStringBuilder("Hello World!");StrB.Remove(5,7);Console.WriteLine(StrB);

此示例将 Hello 显示在窗体上。

(六)使用 Replace 方法,可以用另一个指定的字符来替换 StringBuilder 对象内的字符。以下示例使用 Replace 方法来搜索 StringBuilder 对象,查找所有的感叹号字符 (!),并用问号字符 (?) 来替换它们。

StringBuilder strB = newStringBuilder("Hello World!");StrB.Replace('!', '?');Console.WriteLine(StrB);

此示例将 Hello World? 显示在窗体上

总结:

相比之下,stringBuilder的用法和string类的用法是完全一样的。所以无需刻意去学习。

转载地址:http://zshbb.baihongyu.com/

你可能感兴趣的文章
用 Pipeline 将训练集参数重复应用到测试集
查看>>
PCA 的数学原理和可视化效果
查看>>
机器学习中常用评估指标汇总
查看>>
什么是 ROC AUC
查看>>
Bagging 简述
查看>>
详解 Stacking 的 python 实现
查看>>
简述极大似然估计
查看>>
用线性判别分析 LDA 降维
查看>>
用 Doc2Vec 得到文档/段落/句子的向量表达
查看>>
使聊天机器人具有个性
查看>>
使聊天机器人的对话更有营养
查看>>
一个 tflearn 情感分析小例子
查看>>
attention 机制入门
查看>>
手把手用 IntelliJ IDEA 和 SBT 创建 scala 项目
查看>>
GAN 的 keras 实现
查看>>
AI 在 marketing 上的应用
查看>>
Logistic regression 为什么用 sigmoid ?
查看>>
Logistic Regression 为什么用极大似然函数
查看>>
SVM 的核函数选择和调参
查看>>
LightGBM 如何调参
查看>>