본문 바로가기

.NET/C#

[C#] 문자열 03 - Trim(), TrimStart(), TrimEnd()

문자열의 시작 또는 끝에서 지정된 문자들을 모두 제거하는 메서드이다.

 

Function Description
string Trim(params char[] trimChars) 문자열의 선행과 후행에서 등장하는 지정된 문자 배열의 요소들을 모두 제거한다.
string TrimStart(params char[] trimChars) 문자열의 선행에서 등장하는 지정된 문자 배열의 요소들을 모두 제거한다.
string TrimEnd(params char[] trimChars) 문자열의 후행에서 등장하는 지정된 문자 배열의 요소들을 모두 제거한다.

세 함수 모두 params 형식의 매개변수를 취하고 있으며, 만약 매개변수가 지정되지 않거나(=null) 빈 배열인 경우 공백 문자를 대신 제거한다.

 

var str = ".this is sample string   ";

Console.WriteLine(str.Trim());			// ".this is sample string"

Console.WriteLine(str.Trim('.', ' '));	// "this is sample string"

Console.WriteLine(str.TrimStart());		// ".this is sample string   "

 

동작 자체는 굉장히 간단하지만 유용한 메서드이다.

 

참고로 어떤 문자열에 대해 Trim() 메서드를 호출하는 것만으로 그 결과가 문자열 개체에 반영되지는 않는데, Trim() 메서드는 현재 문자열의 복사본에서 선행/후행에서 지정된 문자들을 제거한 뒤 반환해주는 메서드이기 때문이다.

위 예제 코드에서도 마찬가지로 str 변수에 Trim()을 몇 번에 걸쳐 호출하여도 str에 들어있는 원본 문자열에는 영향을 끼치지 않는 것을 알 수 있다.

 

알아두면 좋은 사실

- Parse(), TryParse(), Convert.ChangeType() 등 문자열을 값 형식으로 변경하는 메서드들은 Trim() 메서드로 선행 및 후행의 공백을 모두 제거한 뒤 처리된다. 따라서 "   123    " 과 같은 문자열을 int.Parse() 메서드를 사용하여 정수로 변환하더라도 문제없이 동작한다.