目录
一、背景
二、使用StringBuilder便捷、高效地操作字符串
三、实例
1.源码
2.生成效果
四、实例中知识点
1.StringBuilder类
(1)构造函数
(2)属性
(3)方法
2.Environment.NewLine 属性
一、背景
符串是不可改变的对象,字符串在创建以后,就不会被改变,当使用字符串对象的Replace、split或Remove等方法操作字符串时,实际上是产生了一个新的字符串对象,原有的字符串如果没有被引用,将会被垃圾收集器回收。如果频繁地使用字符串中的方法对字符串进行操作,会产生大量的没有被引用的字符串对象,这会增加垃圾收集的压力,造成系统资源的浪费。
二、使用StringBuilder便捷、高效地操作字符串
因为使用StringBuilder操作字符串不会产生新的字符串对象,在使用StringBuilder对象前首先要引用命名空间System.Text。
由于字符串的不可变性,使用StringBuilder操作字符串无疑是非常方便和有效的方法。StringBuilder对象的使用方法:
StringBuilder P_stringbuilder = new StringBuilder("abc"); //使用new关键字调用构造方法创建对象
P_stringbuilder.Insert(2,Environment.NewLine); //调用对象的Insert方法向字符串中插入字符
建立StringBuilder对象后,可以调用操作字符串的方法,从而方便操作字符串对象适当地使用StringBuilder操作字符串,会使程序运行更加高效。
三、实例
1.源码
//按标点符号对字符串分行显示
using System.Text;namespace _039
{public partial class Form1 : Form{private GroupBox? groupBox1;private TextBox? textBox3;private Button? button1;private TextBox? textBox1;private TextBox? textBox2;public Form1(){InitializeComponent();Load += Form1_Load;}private void Form1_Load(object? sender, EventArgs e){// // textBox3// textBox3 = new TextBox{Location = new Point(12, 22),Multiline = true,Name = "textBox3",Size = new Size(310, 46),TabIndex = 6,Text = "在下面文本框中输入字符串,并使用(,)号分隔,点击分行显示按钮,根据(,)号对字符串进行分行。"};// // button1// button1 = new Button{Location = new Point(130, 170),Name = "button1",Size = new Size(75, 23),TabIndex = 3,Text = "分行显示",UseVisualStyleBackColor = true};button1.Click += Button1_Click;// // textBox1// textBox1 = new TextBox{Location = new Point(12, 80),Multiline = true,Name = "textBox1",Size = new Size(310, 84),TabIndex = 4};// // textBox2// textBox2 = new TextBox{Location = new Point(12, 200),Multiline = true,Name = "textBox2",Size = new Size(310, 84),TabIndex = 5};// // groupBox1// groupBox1 = new GroupBox{Location = new Point(0, 0),Name = "groupBox1",Size = new Size(334, 74),TabIndex = 0,TabStop = false,Text = "操作说明:"};groupBox1.Controls.Add(textBox3);groupBox1.SuspendLayout();// // Form1// AutoScaleDimensions = new SizeF(7F, 17F);AutoScaleMode = AutoScaleMode.Font;ClientSize = new Size(334, 296);Controls.Add(textBox2);Controls.Add(textBox1);Controls.Add(button1);Controls.Add(groupBox1);Name = "Form1";StartPosition = FormStartPosition.CenterScreen;Text = "按标点符号对字符串分行";groupBox1.ResumeLayout(false);groupBox1.PerformLayout();}private void Button1_Click(object? sender, EventArgs e){StringBuilder stringbuilder = new(textBox1!.Text); //创建字符串处理对象for (int i = 0; i < stringbuilder.Length; i++)if (stringbuilder[i] == ',') //判断是否出现(,)号stringbuilder.Insert(++i, Environment.NewLine); //向字符串内添加换行符textBox2!.Text = stringbuilder.ToString(); //得到分行后的字符串}}
}
2.生成效果
四、实例中知识点
1.StringBuilder类
(1)构造函数
(2)属性
(3)方法
2.Environment.NewLine 属性
等效于换行符。NewLine 自动追加到由 Console.WriteLine 和 StringBuilder.AppendLine 方法处理的文本。
提供 NewLine 的功能通常是换行符、换行符、换行符、回车符、CRLF 和行尾术语的含义。
命名空间:
System程序集:
netstandard.dll获取为此环境定义的换行字符串。属性值
String
\r\n 对于非 Unix 平台或 \n Unix 平台。
实例:
// 显示用换行符分隔的两行
namespace ConsoleApp2
{class Sample{public static void Main(){Console.WriteLine();Console.WriteLine($"NewLine: {Environment.NewLine} first line{Environment.NewLine} second line");}}
}/*
运行结果:NewLine:first linesecond line
*/