3 回答

TA貢獻1780條經(jīng)驗 獲得超1個贊
將子字符串(Swift 3)轉(zhuǎn)換為字符串切片(Swift 4)
Swift 3、4中的示例:
let newStr = str.substring(to: index) // Swift 3
let newStr = String(str[..<index]) // Swift 4
let newStr = str.substring(from: index) // Swift 3
let newStr = String(str[index...]) // Swift 4
let range = firstIndex..<secondIndex // If you have a range
let newStr = = str.substring(with: range) // Swift 3
let newStr = String(str[range]) // Swift 4

TA貢獻2041條經(jīng)驗 獲得超4個贊
您應(yīng)將一側(cè)留空,因此命名為“ partial range”。
let newStr = str[..<index]
運算符的部分范圍相同,只是將另一側(cè)留空:
let newStr = str[index...]
請記住,這些范圍運算符返回Substring。如果要將其轉(zhuǎn)換為字符串,請使用String的初始化函數(shù):
let newStr = String(str[..<index])
您可以在此處閱讀有關(guān)新子字符串的更多信息。

TA貢獻1772條經(jīng)驗 獲得超8個贊
斯威夫特5、4
用法
let text = "Hello world"
text[0] // H
text[...3] // "Hell"
text[6..<text.count] // world
text[NSRange(location: 6, length: 3)] // wor
碼
import Foundation
public extension String {
subscript(value: Int) -> Character {
self[index(at: value)]
}
}
public extension String {
subscript(value: NSRange) -> Substring {
self[value.lowerBound..<value.upperBound]
}
}
public extension String {
subscript(value: CountableClosedRange<Int>) -> Substring {
self[index(at: value.lowerBound)...index(at: value.upperBound)]
}
subscript(value: CountableRange<Int>) -> Substring {
self[index(at: value.lowerBound)..<index(at: value.upperBound)]
}
subscript(value: PartialRangeUpTo<Int>) -> Substring {
self[..<index(at: value.upperBound)]
}
subscript(value: PartialRangeThrough<Int>) -> Substring {
self[...index(at: value.upperBound)]
}
subscript(value: PartialRangeFrom<Int>) -> Substring {
self[index(at: value.lowerBound)...]
}
}
private extension String {
func index(at offset: Int) -> String.Index {
index(startIndex, offsetBy: offset)
}
}
- 3 回答
- 0 關(guān)注
- 831 瀏覽
添加回答
舉報