StringBuilder 类

本文详细介绍了StringBuilder类的特点及其在字符串操作中的优势。探讨了StringBuilder的各种属性如Capacity、Length和MaxCapacity的作用,以及常用方法如Append、AppendFormat和Insert等的使用方式。

StringBuilder 类存在的理由是: 在对字符串增删改时, 比 string 类更快; 更快的原因是无须像 string 一样反复地释放和重建.
但它会在需要时重新分配内存, 如果把需要的内存预制好, 它会更快.



StringBuilder 的属性与方法:
/* 属性 */
Capacity;         // 容量; 可读写, 也可在构建时设置, 但改写时使用 EnsureCapacity() 更保险
Length;           // 长度; 可读写, 写入 0 时, 同 Clear(); Length <= Capacity <= MaxCapacity
MaxCapacity;      // 最大容量; 只读, 只能在构建时设置, 超出则异常

/* 方法 */
Append();         // 追加; 为接受不同类型的数据, 它有很多重载
AppendFormat();   // 按格式追加
AppendLine();     // 追加换行符
Clear();          // 取消; 之后 Length = 0; 但 Capacity、MaxCapacity 不变
CopyTo();         // 复制指定部分到 Char[]
EnsureCapacity(); // 设置 Capacity
Insert();         // 插入
Remove();         // 移除
Replace();        // 替换
ToString();       // 输出文本, 可同时截取


构造函数的 6 种重载:
using System.Text; // StringBuilder 所属的命名空间 

protected void Button1_Click(object sender, EventArgs e)
{
    string str = "";

    /* 无参时, Capacity 默认 16 */
    StringBuilder sb1 = new StringBuilder();
    str += sb1.Capacity.ToString("Capacity: #/n"); //Capacity: 16

    /* 构建时指定 Capacity 大小 */
    StringBuilder sb2 = new StringBuilder(11);
    str += sb2.Capacity.ToString("Capacity: #/n"); //Capacity: 11

    /* 使用字符串构建时, 如果字符串 Length > 16, 其 Capacity 同字符串的长度 */
    StringBuilder sb3 = new StringBuilder("abcdefghijklmnopqrstuvwxyz");
    str += sb3.Capacity.ToString("Capacity: #/n"); //Capacity: 26

    /* 指定 Capacity 和 MaxCapacity */
    StringBuilder sb4 = new StringBuilder(4, 10);
    str += sb4.Capacity.ToString("Capacity: #/t"); //Capacity: 4
    sb4.Append("1234567890");
    str += sb4.Capacity.ToString("Capacity: #/n"); //Capacity: 10
    try { sb4.Append("ABC"); }
    catch (Exception err) { str += err.Message + "/n"; } //容量小于当前大小...

    /* 用字符串构建, 同时指定 Capacity */
    StringBuilder sb5 = new StringBuilder("1234567890", 32);
    str += string.Format("Capacity: {0}/tLength: {1}/n", sb5.Capacity, sb5.Length); //Capacity: 32  Length: 10

    /* 从字符串截取构建, 同时指定 Capacity */
    StringBuilder sb6 = new StringBuilder("ABCDEFG", 1, 3, 12);
    str += string.Format("/"{0}/"/tCapacity: {1}/tLength: {2}", sb6, sb6.Capacity, sb6.Length); //"BCD"	Capacity: 12	Length: 3

    TextBox1.Text = str;
}


练习:

//ToString()
protected void Button1_Click(object sender, EventArgs e)
{
    StringBuilder sb = new StringBuilder("1234567890");
    string s1 = sb.ToString();     //1234567890
    string s2 = sb.ToString(2, 3); //345

    TextBox1.Text = s1 + "/n" + s2;
}

//Append()、AppendFormat()、AppendLine()
protected void Button2_Click(object sender, EventArgs e)
{
    StringBuilder sb = new StringBuilder(256);
    sb.Append("abcdefg");
    sb.AppendLine();
    sb.Append(3.1415926);
    sb.AppendLine();
    sb.AppendFormat("{0:#.##}", 3.1415926);
    TextBox1.Text = sb.ToString();
/*
abcdefg
3.1415926
3.14
*/
}

//Insert()、Remove()、Replace()
protected void Button3_Click(object sender, EventArgs e)
{
    StringBuilder sb = new StringBuilder("..........", 256);

    string s1 = sb.Insert(2, "ABC").ToString();  //..ABC........
    string s2 = sb.Insert(2, 3.14).ToString();   //..3.14ABC........
    string s3 = sb.Remove(6, 3).ToString();      //..3.14........
    string s4 = sb.Replace('.', '*').ToString(); //**3*14********

    TextBox1.Text = s1 + "/n" + s2 + "/n" + s3 + "/n" + s4;
}

//CopyTo
protected void Button4_Click(object sender, EventArgs e)
{
    string str = "..........";
    char[] cArr = str.ToCharArray();

    StringBuilder sb = new StringBuilder("1234567890");
    sb.CopyTo(2, cArr, 0, 3);
    TextBox1.Text = new string(cArr); //345.......
}
文章来源:http://www.bcbbs.net/news/Content.aspx?id=72563 
潮汐研究作为海洋科学的关键分支,融合了物理海洋学、地理信息系统及水利工程等多领域知识。TMD2.05.zip是一套基于MATLAB环境开发的潮汐专用分析工具集,为科研人员与工程实践者提供系统化的潮汐建模与计算支持。该工具箱通过模块化设计实现了两大核心功能: 在交互界面设计方面,工具箱构建了图形化操作环境,有效降低了非专业用户的操作门槛。通过预设参数输入模块(涵盖地理坐标、时间序列、测站数据等),用户可自主配置模型运行条件。界面集成数据加载、参数调整、可视化呈现及流程控制等标准化组件,将复杂的数值运算过程转化为可交互的操作流程。 在潮汐预测模块中,工具箱整合了谐波分解法与潮流要素解析法等数学模型。这些算法能够解构潮汐观测数据,识别关键影响要素(包括K1、O1、M2等核心分潮),并生成不同时间尺度的潮汐预报。基于这些模型,研究者可精准推算特定海域的潮位变化周期与振幅特征,为海洋工程建设、港湾规划设计及海洋生态研究提供定量依据。 该工具集在实践中的应用方向包括: - **潮汐动力解析**:通过多站点观测数据比对,揭示区域主导潮汐成分的时空分布规律 - **数值模型构建**:基于历史观测序列建立潮汐动力学模型,实现潮汐现象的数字化重构与预测 - **工程影响量化**:在海岸开发项目中评估人工构筑物对自然潮汐节律的扰动效应 - **极端事件模拟**:建立风暴潮与天文潮耦合模型,提升海洋灾害预警的时空精度 工具箱以"TMD"为主程序包,内含完整的函数库与示例脚本。用户部署后可通过MATLAB平台调用相关模块,参照技术文档完成全流程操作。这套工具集将专业计算能力与人性化操作界面有机结合,形成了从数据输入到成果输出的完整研究链条,显著提升了潮汐研究的工程适用性与科研效率。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值