๐งฑ StringBuilder - ๋ฌธ์์ด ์ฑ๋ฅ ์ต์ ํ์ ์ด์
C#์์ ๋ฌธ์์ด์ ๋ค๋ฃฐ ๋ ๊ฐ์ฅ ํํ๊ฒ ์ฐ๋ ๊ฑด string ํ์
์ด๋ค.
๊ทธ๋ฐ๋ฐ ๋ฌธ์์ด์ ๋ฐ๋ณตํด์ ๋ถ์ด๊ณ ์์ ํ ์ผ์ด ๋ง์์ง๋ฉด,
string์ ๊ณ์ ์ฐ๋ ๊ฑด ์ฑ๋ฅ์ ์ผ๋ก ๋นํจ์จ์ ์ด๋ค!
์ด๋ ๋ฑ์ฅํ๋ ๊ฒ ๋ฐ๋ก StringBuilder๋ค.
โ string๊ณผ StringBuilder์ ์ฐจ์ด์
๊ตฌ๋ถ | string | StringBuilder |
๋ถ๋ณ(Immutable) | โ O | โ X |
๋ณ๊ฒฝ ์ | ์๋ก์ด ๋ฌธ์์ด ์์ฑ | ๋ด๋ถ ๋ฒํผ ์์ |
์ฑ๋ฅ | ๋๋ฆผ (๋ง์ด ๋ถ์ด๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น) | ๋น ๋ฆ (๊ฐ๋ณ ๊ตฌ์กฐ) |
์ฉ๋ | ๋ฌธ์์ด 1~2ํ ์กฐ์ | ๋ฐ๋ณต์ ์กฐ์ (๋ฃจํ, ๋์ ๋ฑ) |
โ StringBuilder ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ
using System.Text;
StringBuilder sb = new StringBuilder();
sb.Append("์๋
ํ์ธ์");
sb.Append(" ");
sb.Append("์ฌ์๋");
string result = sb.ToString();
Console.WriteLine(result); // ์๋
ํ์ธ์ ์ฌ์๋
- Append() : ๋ฌธ์์ด์ ๋์ ์ถ๊ฐ
- ToString() : ์ต์ข ๋ฌธ์์ด ๋ฐํ
โ ์์ฃผ ์ฌ์ฉํ๋ ๋ฉ์๋
๋ฉ์๋ | ์ค๋ช |
Append(string) | ๋ฌธ์์ด ๋์ ์ถ๊ฐ |
AppendLine(string) | ๋ฌธ์์ด ๋์ ์ค๋ฐ๊ฟ ํฌํจํ์ฌ ์ถ๊ฐ |
Insert(index, string) | ํน์ ์์น์ ๋ฌธ์์ด ์ฝ์ |
Remove(index, length) | ํน์ ์์น๋ถํฐ ๋ฌธ์์ด ์ญ์ |
Replace(old, new) | ํน์ ๋ฌธ์์ด์ ์ ๋ฌธ์์ด๋ก ์นํ |
Clear() | ๋ด์ฉ ์ด๊ธฐํ |
Length | ํ์ฌ ๊ธธ์ด ๋ฐํ |
โ ์ค์ ์์ : 1~5 ์ซ์ ์ฐ๊ฒฐํ๊ธฐ
StringBuilder sb = new StringBuilder();
for (int i = 1; i <= 5; i++)
{
sb.Append(i);
sb.Append(", ");
}
sb.Length -= 2; // ๋ง์ง๋ง ์ผํ ์ ๊ฑฐ
Console.WriteLine(sb.ToString()); // 1, 2, 3, 4, 5
์ด๊ฑธ string์ผ๋ก ๊ตฌํํ๋ฉด, ๋งค ๋ฐ๋ณต๋ง๋ค ์ ๋ฌธ์์ด์ด ์์ฑ๋๋ฏ๋ก ์ฑ๋ฅ ์ ํ ๋ฐ์!
StringBuilder๋ ํ๋์ ๊ฐ์ฒด๋ก ๋ด๋ถ ๋ฒํผ๋ง ์์ ํด์ ํจ์ฌ ํจ์จ์ ์ด๋ค.
โ ์ธ์ ์ฐ๋ฉด ์ข์๊น?
- ๋ฐ๋ณต๋ฌธ ์์์ ๋ฌธ์์ด ๋์ ํ ๋
- ๊ธด ํ ์คํธ๋ฅผ ๋์ /ํธ์งํ ๋ (์: HTML ์์ฑ๊ธฐ, ๋ก๊ทธ ์ถ๋ ฅ ๋ฑ)
- ๋๋์ ๋ฌธ์์ด ์กฐ์์ด ํ์ํ ์ํฉ์์
โ ์ ๋ฆฌํ๋ฉฐ
StringBuilder๋ ๋จ์ํ ๋ฌธ์์ด ๋ถ์ด๊ธฐ ๋๊ตฌ๋ฅผ ๋์ด์,
C#์ ์ฑ๋ฅ์ ์งํค๋ ํ์ ๋๊ตฌ๋ผ๊ณ ๋๊ผ๋ค!
์ฒ์์ Append๋ง ์๋ฉด ๋๋ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง,
Insert, Remove, Replace๋ ์์๋๋ฉด
๋ฌธ์์ด ์ฒ๋ฆฌ์์ ์ ๋ง ์ ์ฉํ๊ฒ ์จ๋จน์ ์ ์๋ค!
์ฒ์ ์๊ฒ๋ ๋ด์ฉ์ธ๋ฐ ์ ์ฉํ๊ฒ ์ ์ธ ์ ์๊ฒ ๋ค!
'C#' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
C# - Big-O ํ๊ธฐ๋ฒ ์ ๋ฆฌ โ ์๊ณ ๋ฆฌ์ฆ ์ฑ๋ฅ์ ๊ธฐ์ค (0) | 2025.07.11 |
---|---|
C# - TextRPGGame(Console) (0) | 2025.07.11 |
C# - Nullable ํ์ ๊ณผ null ์กฐ๊ฑด ์ฐ์ฐ์ (1) | 2025.07.09 |
C# - ๋ธ๋ฆฌ๊ฒ์ดํธ์ ๋๋ค, ํจ์๋ ๋ณ์์ฒ๋ผ! + LINQ (5) | 2025.07.09 |
C# - ๊ฐํ(Value Type)๊ณผ ์ฐธ์กฐํ(Reference Type) ๊ทธ๋ฆฌ๊ณ ๋ฐ์ฑ(Boxing) & ์ธ๋ฐ์ฑ(Unboxing) (0) | 2025.07.09 |