티스토리 뷰

반응형

 

 

 

안녕하세요! 멍구입니다 ^-^//
오늘은 swift의 유용한 문자열 처리 메서드인 split, components에 대해서 + 이 둘의 몇가지 차이를 알아보겠습니다. 🤗

 


Split(separator:maxSplits:omittingEmptySubsequences:)

 

 

split메서드는 다양한 parameter를 지원하는데요. 각각의 역할은 대략 아래와 같습니다. 

- separator: 는 쪼개려는 문자단위를 받습니다. 
- maxSplits는 지정한 문자 단위로 얼마나 쪼갤지를 지정합니다. 
- omittingEmptySubsequences: 에서는 Bool값으로 결과값에서 빈 시퀀스의 포함 유무를 설정합니다.

 

split은 말 그대로 문자열을 특정 문자 기준으로 쪼갤 수 있습니다. 반환형은 String타입을 [Substring]으로 반환하게 됩니다. 배열을 반환받게 되는 것이죠. 

split은 또한 swift 표준 라이브러리(Swift Standard Library)에 들어가 있습니다. 그렇기 때문에 따로 import Foundation을 할 필요 없이 사용할 수 있는 점이 있습니다. 그렇다면 실제로 사용해 볼까요?

let S = "Hello I'm MungGu, Thank You!"

var result2 = S.split(separator: " ")
print(result2)

result2 = S.split { $0 == " " }
print(result2)

앞서 말했던 것처럼, split함수는 swift standard library에 속해있어 별도로 import Foundation 할 필요 없이 사용할 수 있습니다.
separator: 인자값을 받아 공백 단위로 쪼개는 코드가 되겠습니다. 

 

두번째로 사용한 split 메서드도 후행 클로져 형태로 사용되며 첫번째와 동일한 동작을 취합니다. 만약 $0 == "S" 로 설정한다면, 'S' 를 기준으로 쪼개게 됩니다.

 

 


components(separatedBy:)

 

"

 

components도 split과 유사한 결과를 얻을 수 있는데요.
components(separatedBy:) 또한 split과 유사하게 인자값으로 문자를 받아 문자 기준으로 쪼갠 결과값을 반환합니다. 

- separatedBy: 에서는 분리하는 기준 문자를 받습니다.

하지만 split과의 차이점도 있습니다.


components는 반환형이 [String]입니다.
또한 components는 Foundation 프레임워크에 속해있기 때문에 반드시 Foundation 프레임워크를 import 후 사용해야 합니다. 

 

import Foundation

let S = "Hello I'm MungGu, Thank You!"

var result = S.components(separatedBy: " ")
print(result)

위와 같이 import Foundation을 해주어야 문자열 타입 변수로부터 components 메서드를 접근할 수 있습니다.
이후 결과값은 split과 같이 배열타입을 얻을 수 있습니다.

이 둘의 결과값이 동일해 보일지 모르지만 그 과정에서는 split, components 각각 동작방식의 차이가 있다고 합니다. 이번 포스팅은 겉햝기 포스팅이니 이부분은 패스하겠습니다. 😂

 


split vs components 차이

 

위의 내용을 토대로 간략하게 split vs components의 차이를 정리해보겠습니다. 
- split은 스위프트 표준 라이브러리에 속해있어 Foundation을 import 할 필요가 없습니다. 
- components는 Foundation 프레임워크에 속해있어 Foundation을 import 하여 사용해야 합니다.

- split은 [SubString]을 반환합니다.
- components는 [String]을 반환합니다. 

- split은 separator 외에 maxSplits, omittingEmptySubsequences 등의 옵션 인자값을 갖습니다.
- components는 separatedBy: 인자값 딱, 하나입니다. 

사실 더 많은 차이가 있을 split과 components!
큰 차이점은 위와 같다고 할 수 있겠습니다.

그 이외에 더 자세한 부분이 궁금하시다면, split, components에 대한 swift 공식 문서를 참고하시기 바랍니다.

기회가 된다면 좀더 깊게 파고들어가 보겠습니다

즐거운 하루 되시길 바랍니다 ^-^// 👨🏻‍💻

 

 

반응형
댓글
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함