C# 문자열 string & StringBuilder

string : 

 

문자열을 담을 수 있는 읽기전용 참조 타입이다.

이 한문장에 두가지 함정이 있다.

 

1. 참조 타입이지만 값 타입처럼 '=='비교가 가능하게끔 기본적으로 설계 되어있다.

물론 Compare 메서드도 존재한다. 어느쪽이 자연스럽게 받아들여 질지는 개인차가 있을 것 같다.

 

2. 읽기 전용이지만 변경이 가능하다. 겉으로는 변경되는 것 처럼 보이지만 내부적 으로는

새 문자열을 만들어서 대체하고 기존 것은 가비지 컬렉터에게 맡기는 방식이다.

변경 동작이 많으면 많을 수록 자원낭비가 심해지기 때문에 해결책인 StringBuilder가 존재한다.

 

 

 

Insert / Remove / Replace / Compare - 삽입 / 삭제 / 대체 / 비교

 

ToUpper / ToLower - 대 / 소문자로 변환한 string 반환.

 

PadLeft / PadRight - 지정한 폭 만큼 공백으로 채워서 string 반환.

 

Trim - 문자열 앞뒤의 공백을 제거해서 string 반환.

 

IndexOf - 대상 string에 문자(열)를 검색하여 인덱스를 반환한다. 없으면 -1 반환.

 

Contains - 대상 string에 문자(열)를 검색하여 bool값 반환.

 

Split - 구분자를 기준으로 나누어서 string[] 반환.

 

Format - 조립된 서식을 string 반환.

 

 

 

 

StringBuilder :

 

string이 문자열을 표현하는 클래스라면 StringBuilder는 문자열을 조작하는 클래스이다.

미리 할당해놓은 메모리에서 객체 자체를 조작하므로 string의 메서드보다 효율이 좋다.

주로 추가, 삽입, 삭제, 대체 역할을 한다.

 

 

StringBuilder sb = new StringBuilder(스트링 , 정수버퍼크기);

문자열 조작중 버퍼크기가 꽉차면 자동으로 재할당 되지만 가급적 여유있게 초기화 한다.

 

 

 

Append - 문자(열)를 뒤에 추가.

 

AppendFormat - 서식 문자열을 뒤에 추가.

 

AppendLine - 문자열을 추가하고 개행한다.

 

Insert - 해당 인덱스에 문자(열)를 삽입.

 

Remove - 지정 범위를 삭제한다.

 

Replace - 해당 문자(열)를 대체.

 

ToString - string 반환.

 

 

 

'.NET > CSharp' 카테고리의 다른 글

C# 에서 mySQL 사용하기  (1) 2014.08.04
C# 비동기소켓 TCP 서버&클라이언트  (6) 2014.01.10
C# 델리게이트 delegate  (0) 2014.01.08
C# 네트워크 UdpClient  (1) 2014.01.02
C# 네트워크 헬퍼클래스 TcpListener, TcpClient  (0) 2014.01.02