Swift 의 문자열 자르기(substring) 기능은 매우 귀찮다!
var str = "Hello, Swift Language"
Swift에서 문자열을 자르는 함수 - substring은 String.Index 를 사용하는데, 이게 임의의 값을 설정할 수가 없다!
advance 함수를 이용해서 일정 거리(distance)만큼 밀어버린 인덱스(String.Index)를 생성해서 잘라내야 한다.
let startIndex = advance(str.startIndex, 1)
let endIndex = advance(str.startIndex, 5)
str.substringToIndex(endIndex)
다음은 범위(Range)로 문자열을 자르는 코드다.
let range = startIndex...endIndex
str.substringWithRange(range)
차라리!!!
다음과 같이 NSString 으로 변환해서 처리하는 게 더 간단하다.
(str as NSString).substringToIndex(5)
(str as NSString).substringWithRange(NSMakeRange(1, 5))
혹은
다음과 같이 String을 확장해서 사용하기도 한다.
extension String {
subscript(range:Range<Int>) -> String {
let start = advance(startIndex, range.startIndex, endIndex)
let end = advance(startIndex, range.endIndex, endIndex)
return self[start...end]
}
}
str[1...4]
str[1..<3]
'code snippet' 카테고리의 다른 글
[Node.js] 서버 IP 얻기 (0) | 2015.03.05 |
---|---|
[iOS] 뷰의 아웃렛 작성시 weak? strong? (0) | 2014.12.28 |
[Swift] 파일 접근하기 (0) | 2014.08.03 |
[SWIFT] JSON 파싱 예제 코드 (0) | 2014.07.22 |
비율(Aspect Ratio) 제약사항 : iOS7.1 변경사항 (0) | 2014.01.05 |