3 回答
TA贡献1802条经验 获得超5个赞
测试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贡献1830条经验 获得超9个赞
在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 关注
- 1001 浏览
添加回答
举报