날쌘 개발자

components / split 본문

ios/기본문법

components / split

훈식이 2022. 4. 1. 19:24
728x90

components가 궁금해 구글링해보았는데,
split이라는 친구와 쌍으로 문자열을 다룰 때 자주 쓰는 메소드라고 한다

먼저 split메소드의 예시부터 보겠다.

 var s = "I am swift developer"

 let sSplit = s.split(separator: " ")

 print(sSplit) // ["I", "am", "swift", "developer"]

 

split메소드의 separator 매개변수로 값을 받고,
받은 값을 기준으로 문자열을 나눠 [Substring] 형태로 반환해준다.
여기서 중요한점은, 기준으로 하는 문자는 기준으로만 사용하고 제외한 채 반환한다는 점이다.

 

split메소드의 parameter는 separator뿐만 아니라
나눠주는 최대 횟수를 지정해주는 maxSplit,
나눠준 인스턴스가 비어있으면 제외시켜주는 omittingEmptySubsequence 도 존재한다.


다음은 components이다.
components메소드도 기능은 split메소드와 유사하지만, 몇가지 차이점이 있다.
일단 components메소드에는 매개변수가 seperator 하나만 존재하고,
반환형태는 [String] 형태이다.

 var s = "I am swift developer"

 let sCompo = s.components(seperatedBy: " ")

 print(sCompo) // ["I", "am", "swift", "developer"]

이렇게 매개변수에 공백 하나만을 넣는다면, split과 결과값은 반환형태만 다를 뿐 유사하다.

유사한 기능을 가지고 있지만, 차이점을 몇개 추가해서 정리해 본다면

 

  • 파라미터의 개수가 split은 3개, component는 1개
  • 반환타입은 split - [Substring], component - [String]
  • component는 Foundation프레임워크의 import가 필수지만, split은 필요없다고 한다.
  • 성능면에서는 더 다양한 파라미터를 활용하는 split이 좋다고 한다.

 


아무튼 이 메소드를 응용하여 이런식으로도 유용하게 사용할 수 있다.

 var s = "I am swift developer"

 if s.components(separatedBy: "w").count == s.components(separatedBy: "p").count {

 print("Same")

 }

 

 

다음 블로그 내용을 참고

 

https://velog.io/@minni/Swift-split-VS-components

728x90

'ios > 기본문법' 카테고리의 다른 글

Protocols - (1)  (0) 2022.04.07
MVC 에 대해  (0) 2022.04.01
소문자 대문자  (0) 2022.04.01
고차함수  (0) 2022.03.01
스위프트 기본문법 (5)  (0) 2021.07.09