๋ฐ˜์‘ํ˜•

๐Ÿงฑ 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๋„ ์•Œ์•„๋‘๋ฉด
๋ฌธ์ž์—ด ์ฒ˜๋ฆฌ์—์„œ ์ •๋ง ์œ ์šฉํ•˜๊ฒŒ ์จ๋จน์„ ์ˆ˜ ์žˆ๋‹ค!

์ฒ˜์Œ ์•Œ๊ฒŒ๋œ ๋‚ด์šฉ์ธ๋ฐ ์œ ์šฉํ•˜๊ฒŒ ์ž˜ ์“ธ ์ˆ˜ ์žˆ๊ฒ ๋‹ค!

๋ฐ˜์‘ํ˜•