티스토리 뷰
안녕하세요! 멍구입니다 ^-^//
오늘은 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 공식 문서를 참고하시기 바랍니다.
기회가 된다면 좀더 깊게 파고들어가 보겠습니다
즐거운 하루 되시길 바랍니다 ^-^// 👨🏻💻
'iOS 개발' 카테고리의 다른 글
iOS MVVM 디자인패턴, Model-View-ViewModel 개요 (0) | 2020.06.24 |
---|---|
iOS leastNonzeroMagnitude, leastNormalMagnitude 알아보기 (0) | 2020.06.11 |
Vision VNRequest, Handler, Observation 역할 및 사용방법 (0) | 2020.06.03 |
iOS NLTagger로 문자열 어휘, 이름 단위 토큰화 하기 (0) | 2020.06.02 |
iOS 자연어처리, NLTagger로 문자열 토큰화하는 방법 (0) | 2020.06.01 |
- Total
- Today
- Yesterday
- SwiftUI
- 프로그래머스
- swift reduce
- Swift 알고리즘
- swift언어
- 개발자문서
- publisher
- 알고리즘문제
- 프로토콜
- swift알고리즘
- ios
- createML
- uikit
- Protocol
- 자연어처리
- Collection
- swift 기초
- swift 문자열
- CoreML
- 컬렉션
- swift문제
- swift string
- swift
- 프로그래머스swift
- 알고리즘
- 백준swift
- 스위프트
- 백준알고리즘
- 김프매매
- 부스트코스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |