Swift

문자열 자르기 components & split - swift

나른한코딩 2021. 7. 17. 17:06

특정 문자를 기준으로 문자열을 자를 때 사용하는 함수는 크게  components 와  split  이 있다.

 

각 함수 Summary를 보자.

(자세한 정의는 위의 함수 링크를 참고)

components summary
split summary

차이점

  • 프레임워크/라이브러리
    : `components`는 Foundation 프레임워크에 속해있어 'import Foundation'을 선언해주어야 하는 반면,
    `split`은 swift 표준 라이브러리에 속해있기에 'import Foundation'을 하지 않아도 쓸 수 있다.
  • 리턴값
    : components -> [String]
     split -> [SubString]
  • 인자수
    : components - `separatedBy`
      split - `separator`, `maxSplits`, `ommitingEmptySubsequences`
  • 빈배열을 포함해서 리턴해주는지 여부
    : `components`는 seperator가 연속으로 등장한 경우 빈문자열을 함께 리턴해준다. (빈문자열을 없애는 추가코드 필요)
     split은 `ommitingEmptySubsequences`인자의 기본값이 `true`로 되어있는데, 이 인자가 빈문자열을 걸러줄지 여부를 결정한다.
    만약 `false`로 되어있다면 `components`와 마찬가지로 빈문자열을 포함하여 리턴해준다.

Let's Playgrounds!

components test

swift components example

- seperator를 기준으로 문자열이 잘린 것을 볼 수 있다.

- seperator를 여러개 사용할 수 있다.

split test

swift split example

- seperator를 기준으로 문자열이 잘린 것을 볼 수 있다.

- `ommitingEmptySubsequences`인자를 `false`로 주면 빈문자열이 같이 출력되는 것을 볼 수 있다.

emptyString test

- 바로 같은지 비교하면 error가 난다. 
- 이유 : `components`와 `split`의 리턴값이 다르기 때문에 비교할 수가 없다.

- 따라서 내용물이 같은지 확인을 위한 테스트용으로 `map`을 이용하여 `SubStringElement`를 `String`으로 바꾸어주었다.

compare components and split

 

 

틀린부분이 있거나, 더 좋은 방법이 있다면 댓글로 남겨주세요! 
🌈댓글은 언제나 환영입니다🙏🏻

반응형