티스토리 뷰
Swift3 ) How to convert Array/Dictionary/Set to String in Swift(배열/집합/사전을 문자열로 바꾸는 방법)
Zedd0202 2017. 7. 13. 19:53안녕하세요 :)
오늘은 Swift에서 Array(배열)/Dictionary(사전)/Set(집합)을 String(문자열)으로 바꾸는 방법을 알려드릴거에요.
Array(배열)/Dictionary(사전)/Set(집합)을 String(문자열)으로 바꾸는 방법
1. joined사용
var arr = ["a","b","c"]//Array(배열)
var set :Set = ["d","e"]//Set(사전)
var dic : Dictionary = [1:"f",2:"g"]//Dictionary(사전)
일단 뭔가 있어야 문자열로 바꾸겠죠?
var arrToStr = arr.joined()
print(arrToStr)//"abc"
var setToStr = set.joined()
print(setToStr)//"de"
var dicToStr = dic.values.joined()
print(dicToStr)//"gf" -> 순서없이 나옴.
셋 다 joined()라는 메소드를 사용하여 문자열로 만들어 줄 수 있습니다.
다만 Dictionary에서 주의해야 할 점이 있는데요,
먼저 앞서 말씀드린것처럼 문자열로 바꾸는 과정에서 순서를 보장할 수 없습니다.
또한,
var dic : Dictionary = [1:"f",2:"g"]
var dicToStr = dic.values.joined()//"gf"
print(dicToStr)
//------------------------------------//
var dic2 :Dictionary = ["f":1,"g":2]
var dic2ToStr = dic2.keys.joined()
print(dic2ToStr)//"gf"
저기 보이시는 것 처럼 Dictionary의 타입이 String인 것만 join할 수 있습니다.
Int타입을 join하려고 하면 오류가 날 거에요.
나는 문자열로 만들되, 얘네를 구분해주고 싶다! 하시면, joined(separator:)를 쓰시면 됩니다.
Array, Set, Dictionary사용하는 건 다 똑같으니까 배열만 보여드릴게요.
let arr = ["hello","world","zedd"]
let joinedStr = arr.joined(separator: " , ")
print(joinedStr)//"hello , world , zedd"
2. reduce사용
var arr = ["a","b","c"]//Array(배열)
var set :Set = ["d","e"]//Set(사전)
var dic : Dictionary = [1:"f",2:"g"]//Dictionary(사전)
역시 위 Collection들을 이용하여 reduce를 써보겠습니다.
var arrToStr = arr.reduce(" ", {$0+$1})
print(arrToStr)//"abc"
var setToStr = set.reduce(" ", {$0+$1})
print(setToStr)//"df"
var dicToStr = dic.values.reduce(" ", {$0+$1})
print(dicToStr)//"gf" -> joined와 마찬가지로 순서없이 나옴.
joined는 이름에서 뭔가 합친다는 느낌을 받을 수 있었는데..이건 뭐지...? $0은 뭐지..?
reduce는 Swift의 고차함수중 하나인데요,
reduce도 따로 글을 쓰도록 할게요. 저건 정말 완벽한 축약형.......이라고 할 수 있습니다.
축약하지 않은 형태는
var arrToStr = arr.reduce("") { (s1: String, s2: String) -> String in
return s1+s2
}
print(arrToStr)//"abc"
이거라고 할 수 있겠네요.
var arrToStr = arr.reduce("", { (s1: String, s2: String) -> String in
return s1+s2
})
print(arrToStr)//"abc"
이것도 가능합니다. (달라진게 없어보이지만.....소괄호가 전체를 묶었죠)
아무튼..! 오늘은 배열/집합/사전을 문자열로 바꾸는 방법을 알아보았습니다.
도움이 되었으면 좋겠네요 :)
'Swift' 카테고리의 다른 글
Swift ) init과 convenience init의 차이 (5) | 2017.07.20 |
---|---|
Swift3 ) 왕초보를 위한 날짜와 시간(Date)사용해보기 (1/2) (0) | 2017.07.14 |
Swift3 ) Collection - Set사용해보기 (1) | 2017.07.12 |
Swift3 ) Collection - Dictionary사용해보기 (5) | 2017.07.12 |
Swift3 ) How to convert string to an array in Swift ( 문자열을 배열로 바꾸는 방법) (2) | 2017.07.10 |
- fastlane
- np-complete
- UIBezierPath
- github
- Combine
- 스위프트 문법
- 회고
- swift delegate
- WidgetKit
- WKWebView
- ios 13
- SwiftUI
- Accessibility
- Swift
- swift 공부
- swift sort
- 스위프트
- FLUTTER
- swift3
- IOS
- np-hard
- Xcode
- iOS delegate
- 피아노
- WWDC
- 제이슨 파싱
- actor
- Git
- swift tutorial
- swift array
- Total
- Today
- Yesterday