c# 学习笔记 - StringBuilder

文章目录

    • 1. 介绍
      • 1.1 基本介绍
      • 1.2 深层细节
    • 2. 构造和属性
      • 2.1 StringBuilder 构造
      • 2.2 StringBuilder 属性
    • 3. 方法
      • 3.1 添加相关

1. 介绍

1.1 基本介绍

  类结构
c# 学习笔记 - StringBuilder_第1张图片
  StringBuilder官方参考文档:StringBuilder类

1.2 深层细节

2. 构造和属性

2.1 StringBuilder 构造

  相关构造方法
c# 学习笔记 - StringBuilder_第2张图片

class Test {
    static void Main() {
        int capacity = 20; // 建议容量
        int maxCapacity = 2000;
        string? str = "hello, world";

        StringBuilder s1 = new StringBuilder(); // 默认起始容量为16
        StringBuilder s2 = new StringBuilder(capacity);
        StringBuilder s3 = new StringBuilder(str); // 若为null --> 空字符串, 默认起始容量为字符串长度
        StringBuilder s4 = new StringBuilder(capacity, maxCapacity); // 若capacity == 0 --> capacity自动转换为maxCapacity
        StringBuilder s5 = new StringBuilder(str, capacity); // 若 str 长度 大于capacity, 则初始capacity长度等于str的长度 
        StringBuilder s6 = new StringBuilder(capacity, maxCapacity);

        int startIndex = 1, length = str.Length - 1;
        StringBuilder s7 = new StringBuilder(str, startIndex, length, capacity);
    }
}

2.2 StringBuilder 属性

  1. public int Capacity { get; set; } ==> 当前存储容量
  2. public char this[int index] { get; set; } ==> 获取或设置此实例中指定字符位置处的字符。
  3. public int Length { get; set; } ==> 获取或设置当前 StringBuilder 对象的长度(可以设置,若短就截断,若长了则向后补充’\0’字符)
  4. public int MaxCapacity { get; } ==> 获取此实例的最大容量。
class Test {
    static void Main() {
        string str = "hello, world";
        
        StringBuilder sb = new StringBuilder(str);
        Console.WriteLine(sb.Capacity);
        Console.WriteLine(sb[0]);
        Console.WriteLine(sb.Length);
        Console.WriteLine(sb.MaxCapacity);
    }
}
/*
16
h
12
2147483647
*/

3. 方法

3.1 添加相关

  总结

  1. StringBuilder.Append:向此实例追加指定对象的字符串表示形式
  2. StringBuilder.AppendLine:将默认的行终止符(或指定字符串的副本和默认的行终止符)追加到此实例的末尾。

  代码

class Test {
    static void Main() {
        string str = "hello, world";
        StringBuilder sb = new StringBuilder(str);

        sb.Append("添加于同一行....");
        sb.AppendLine(",  我后面跟着一个行终止符哟......");
        sb.Append("我在新的一行啦......");
        Console.WriteLine(sb);

        // ? 可以用于可空类型的声明,添加到sb后面,此时即使sb == null, 也不会抛出异常,返回的StringBuilder会为 null 
        sb = null; 
        StringBuilder sb_tmp = sb?.AppendLine("");         
    }
}
/*
hello, world添加于同一行....,  我后面跟着一个行终止符哟......
我在新的一行啦......
*/

你可能感兴趣的:(c#,c#,学习,笔记)