3 回答

TA貢獻1836條經驗 獲得超4個贊
測試Swift 4.2 / 4.1 / 4.0 / 3.0
使用String[Range<String.Index>]
下標,您可以獲得子字符串。您需要啟動索引和最后一個索引來創建范圍,您可以按照以下方式執行此操作
let str = "abcde"if let range = str.range(of: "cd") { let substring = str[..<range.lowerBound] // or str[str.startIndex..<range.lowerBound] print(substring) // Prints ab}else { print("String not present")}
如果沒有為此運算符定義起始索引..<
,則采用起始索引。您也可以使用str[str.startIndex..<range.lowerBound]
而不是str[..<range.lowerBound]

TA貢獻1757條經驗 獲得超7個贊
在Swift 4中:
獲取字符串中的字符索引:
let str = "abcdefghabcd"
if let index = str.index(of: "b") {
print(index) // Index(_compoundOffset: 4, _cache: Swift.String.Index._Cache.character(1))
}
使用Swift 4從String創建SubString(前綴和后綴):
let str : String = "ilike"
for i in 0...str.count {
let index = str.index(str.startIndex, offsetBy: i) // String.Index
let prefix = str[..<index] // String.SubSequence
let suffix = str[index...] // String.SubSequence
print("prefix \(prefix), suffix : \(suffix)")
}
產量
prefix , suffix : ilike
prefix i, suffix : like
prefix il, suffix : ike
prefix ili, suffix : ke
prefix ilik, suffix : e
prefix ilike, suffix :
如果要生成2個索引之間的子字符串,請使用:
let substring1 = string[startIndex...endIndex] // including endIndex
let subString2 = string[startIndex..<endIndex] // excluding endIndex
- 3 回答
- 0 關注
- 496 瀏覽
添加回答
舉報