본문 바로가기
프로그래밍/C#

StringBuilder

by Planetis 2015. 4. 5.
System.Text.StringBuilder

String은 지정된 문자열을 내부적으로 변경 할 수는 없다.

StringBuilder는 내부적으로 문자열 변경이 가능하다.


주요 메서드
Append
- 저장하고있는 값 뒤에 매개변수의 값을 문자열을 추가 한다. (Bool, Byte, Char, Char[], Decimal, Double, int16, int32, int64 등)

- 즉, Boolean 값이 매개변수로 들어가면, True 혹은 False 라는 문자열로 추가 한다.

- 문자를 n 번 추가 할 수 있다. ex) sb.Append('a', n);

1
2
3
StringBuilder sb = new StringBuilder("Hello");
sb.Append(" World");
Console.WriteLine(sb);
cs

1
2
3
StringBuilder sb = new StringBuilder("He");
sb.Append('l', 2).Append("o World");
Console.WriteLine(sb);
cs

AppendFormat

- C/C++에서 printf를 쓰면서 보았던 서식문자를 사용하지 않는다.

- 자리표시자를 사용하며, 매개변수는 0개이상의 자리표시자가 있는 하나의 서식과, 0개 이상의 변수를 사용합니다.

1
2
3
StringBuilder sb = new StringBuilder();
sb.AppendFormat("{0} {1} {2}","Hello","World",0);
Console.WriteLine(sb);
cs

1
2
3
4
5
object[] var = {"Legacy"2015'tistory'4.12};
 
StringBuilder sb = new StringBuilder();
sb.AppendFormat("{0} {1} {2} {3}", var);
Console.WriteLine(sb);
cs


Insert

- 지정된 위치에 특정 문자열을 추가한다.

1
2
3
StringBuilder sb = new StringBuilder("Hellorld");
sb.Insert(5" Wo");
Console.WriteLine(sb);
cs

Remove

- 지정된 위치에있는 문자열을 특정 수많큼 삭제한다.

1
2
3
StringBuilder sb = new StringBuilder("Hello Programing World");
sb.Remove(6,16);
Console.WriteLine(sb);
cs


Replace

- 지정한 문자열과 특정 문자열을 바꾼다.

1
2
3
StringBuilder sb = new StringBuilder("Hell World");
sb.Replace(" ","o ");
Console.WriteLine(sb);
cs



MSDN : https://msdn.microsoft.com/ko-kr/library/system.text.stringbuilder%28v=vs.110%29.aspx


작성일 기준으로 유니티3D에서 문자열 관련 처리를 할 때, string 보다 StringBulider가 가비지 콜렉터를 덜 발생 시키며, 성능 향상에 더 도움이 된다고 하여서 C#의 StringBuilder 관련 포스트를 작성하였음.


320x100

'프로그래밍 > C#' 카테고리의 다른 글

C# 배열과 n차원 배열  (0) 2015.06.24
C#, Math  (0) 2015.05.12
List<T>  (0) 2015.04.19
C# 웹 파싱 코드 샘플  (0) 2015.04.15
명명된 매개변수와 선택적 매개변수  (0) 2015.04.10

댓글