Swift - components, split

2022. 9. 30. 16:59ios

Swift - components, split

 

 

 components, split 둘 다 똑같은 거 아니야?

 

swift에서 문자열을 특정 문자를 기준으로 배열을 만들어주는 메서드는 components와 split이 있다.

 

그렇다면 두 개의 차이점은 무엇일까?

 

먼저 components는 아래와 같다.

 

 

단순히 문자를 기준으로 문자열 배열을 만들어 주는 것이다.

 

사용 예시

 

import Foundation
let str = "a0b1c3"
print(str.components(separatedBy: ["b", "c"])) // output: ["a0", "1", "3"]

 

split은 components보다 인자가 많고 더 기능이 많다.

 

눈에 띄게 다른 점은 두 가지가 있다.

 

1. 인자를 받아 참인지 거짓인지를 확인하는 whereSeparator변수가 존재한다.

2. return 타입이 [Self.subSequence]기 때문에 String배열로 만들기 위해서는 별도로 map함수로 매핑해야 한다.

 

 

첫 번째 인자 maxSplit은 쪼갤 개수이다. 즉 maxSplits가 1이라면 한번만 쪼개는 것이다.

두 번째 인자 omittingEmptySubsequences는 split의 결과로 맨 뒤에 공백을 넣을지 말지를 true/false로 지정하는 것이다.

 

마지막 인자인 whereSaparator가 split의 핵심이라고 생각한다.

components는 인자로 조건을 넣을 수 없지만 split은 조건을 통해서 필터링 기능을 할 수가 있다.

 

let str = "a0b1c3"
print(str.split(whereSeparator: {$0.isLetter})) // output: ["1", "2", "3"]

 

'ios' 카테고리의 다른 글

iOS - xib를 이용해서 Custom View 만들기  (0) 2022.10.10
Swift - 문자열 인덱스  (1) 2022.10.04
Swift - zip  (0) 2022.09.30
Swift - 순열과 조합 구현하기  (0) 2022.09.29
Swift - Set 톺아보기  (0) 2022.09.28