가끔 개발하다 보면, 검색 기능이나 어떤 문자열에 사용자가 검색을 할 때 개발자의 의도와는 다르게 문장을 입력할 때가 있다. 예를들어...
- " 검색 "
- "검 색 "
위와 같이 필요없는 앞 뒤 공백이나 줄바꿈이 들어간 문자열을 예쁘게 다듬어 주는 기능을 trim이라고 한다.
여담으로 trim은 어떤 것을 정리하거나 잘라내는 작업이나 과정을 뜻하는 단어이다.
Swift에서 trim사용하기
Swift에서는 trimmingCharacters(in:)
을 사용하여 문자열을 정리할 수 있다.
in:
에는 CharacterSet
이라는 타입을 넣는데, 주로 .whitespaces
를 사용하는 것 같다.
CharacterSet 종류 | 설명 |
---|---|
.whitespaces |
문자열의 앞과 뒤에서 공백 문자(" " , "\t" , "\n" , "\r" )를 제거합니다. |
.whitespacesAndNewlines |
문자열의 앞과 뒤에서 공백 문자와 새 줄 문자("\n" , "\r" )를 제거합니다. |
.decimalDigits |
문자열의 앞과 뒤에서 숫자(0-9 )를 제거합니다. |
.letters |
문자열의 앞과 뒤에서 알파벳 문자(대소문자 포함)를 제거합니다. |
.lowercaseLetters |
문자열의 앞과 뒤에서 소문자 알파벳 문자(a-z )를 제거합니다. |
.uppercaseLetters |
문자열의 앞과 뒤에서 대문자 알파벳 문자(A-Z )를 제거합니다. |
.nonBaseCharacters |
문자열의 앞과 뒤에서 기저가 아닌 문자(주로 글자 위에 표시되는 문자들)을 제거합니다. |
.punctuationCharacters |
문자열의 앞과 뒤에서 구두점 문자("!" , "#" , "$" , "%" 등)을 제거합니다. |
.symbols |
문자열의 앞과 뒤에서 기호 문자(@ , & , * , + 등)을 제거합니다. |
.alphanumerics |
문자열의 앞과 뒤에서 알파벳 문자와 숫자만 남기고, 나머지 문자를 제거합니다. |
.urlHostAllowed |
URL의 호스트 이름에 허용되는 문자(주로 도메인 이름에 사용되는 문자)를 제외한 문자를 제거합니다. |
.urlPathAllowed |
URL 경로에서 허용되는 문자(경로의 일부로 사용될 수 있는 문자)를 제외한 문자를 제거합니다. |
.urlQueryAllowed |
URL 쿼리에서 허용되는 문자(쿼리 파라미터에 사용할 수 있는 문자)를 제외한 문자를 제거합니다. |
.urlFragmentAllowed |
URL 프래그먼트에서 허용되는 문자를 제외한 문자를 제거합니다. |
.controlCharacters |
문자열의 앞과 뒤에서 제어 문자(C0 제어 문자 등)를 제거합니다. |
.newlines |
문자열의 앞과 뒤에서 새 줄 문자(\n , \r )를 제거합니다. |
아래와 같이 사용 가능하다.
let uglyString = " i'm String. "
let prettyString = uglyString.trimmingCharacters(in: .whitespaces) // 앞뒤 공백 제거하기
print(prettyString) // i'm String.