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 |