? 类结构
? StringBuilder官方参考文档:StringBuilder类
?
?
? 相关构造方法
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);
}
}
?
- public int Capacity { get; set; } ==> 当前存储容量
- public char this[int index] { get; set; } ==> 获取或设置此实例中指定字符位置处的字符。
- public int Length { get; set; } ==> 获取或设置当前 StringBuilder 对象的长度(可以设置,若短就截断,若长了则向后补充’\0’字符)
- 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
*/
?
? 总结
- StringBuilder.Append:向此实例追加指定对象的字符串表示形式
- 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添加于同一行...., 我后面跟着一个行终止符哟......
我在新的一行啦......
*/