특정 문자를 기준으로 문자열을 자를 때 사용하는 함수는 크게 components 와 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
- seperator를 기준으로 문자열이 잘린 것을 볼 수 있다.
- seperator를 여러개 사용할 수 있다.
split test
- seperator를 기준으로 문자열이 잘린 것을 볼 수 있다.
- `ommitingEmptySubsequences`인자를 `false`로 주면 빈문자열이 같이 출력되는 것을 볼 수 있다.
emptyString test
- 바로 같은지 비교하면 error가 난다.
- 이유 : `components`와 `split`의 리턴값이 다르기 때문에 비교할 수가 없다.
- 따라서 내용물이 같은지 확인을 위한 테스트용으로 `map`을 이용하여 `SubStringElement`를 `String`으로 바꾸어주었다.
틀린부분이 있거나, 더 좋은 방법이 있다면 댓글로 남겨주세요!
🌈댓글은 언제나 환영입니다🙏🏻
반응형
'Swift' 카테고리의 다른 글
sort, sorted의 차이는 무엇일까? - swift (0) | 2021.09.30 |
---|---|
클래스, 인스턴스, 객체가 도대체 뭡니까. - swift (0) | 2021.08.20 |
소수점 제거 (올림 / 버림 / 반올림 ) 관련 함수 - swift (0) | 2021.07.22 |
주어진 문자열이 문자로만 이루어져 있는지 체크하는 함수 만들기 - swift (2) | 2021.07.22 |
readLine()을 통해 키보드로 입력받기 - swift (0) | 2021.07.19 |