Here's a simple example to demonstrate:
StringBuilder example = new StringBuilder("Hello");
//length changes from default value of 0 to 5 on creation of the object
Console.WriteLine(example.Length);
//output is 5
Using the append method, I add the string "Hello" onto an empty string.
StringBuilder example = new StringBuilder("");
//this is an empty string; length is still 0
example.Append("Hello");
Console.WriteLine(example.Length);
//output is still 5
Using the append method, I add the string "Hello" onto a string containing only a space character.
StringBuilder example = new StringBuilder(" ");
//this is NOT an empty string
//there is a space character in this string; current length is now 1
Console.WriteLine(example.Length);
//output is 1
example.Append("Hello");
Console.WriteLine(example.Length);
//output is now 6, because there is a space character at the beginning of the string
Console.WriteLine(example);//output is " Hello" - there will be a space before "H"
Just remember that an empty string ("") is not the same as (" "). The latter contains a space character. This makes a big difference if you're appending your string and then getting the length. Not that I expect this is done on a regular basis, but the moral of the story is to make sure you know what prior strings contained before appending or you might get a surprise. (Not that this ever happened to me.)
So what if I wanted to get rid of the space character? Truncate.
StringBuilder x = new StringBuilder(" ");
Console.WriteLine(x.Length);//output is 1 because of the space character
x.Length = 0;
x.Append("Hello");
Console.WriteLine(x);//output is "Hello"; notice there is no space before "Hello" now
Console.WriteLine(x.Length);//output is 5;
Here is a screenshot to show the code and output.
No comments:
Post a Comment