要删除指定范围的子字符串,请使用removeRange(_ :) 方法:
1 let range = advance(welcome.endIndex, -6)..<welcome.endIndex 2 welcome.removeRange(range) 3 println(welcome) 4 // prints "hello"
摘自:Apple Inc.“The Swift Programming Language。”iBooks。 https://itun.es/ca/jEUH0.l
你好,
我不完全理解上面代码中第1行的语法和功能。
请使用此字符串解释:
let welcome = "hello there"
这就是我已经解决的问题:
&#34;要更改开始和结束索引,请使用
advance()
。&#34;
来自:https://stackoverflow.com/a/24045156/4839671
欢迎提供更好的advance()
文档。即它的论点
使用
..<
创建一个省略其上限值的范围摘自:Apple Inc.“The Swift Programming Language。”iBooks。 https://itun.es/ca/jEUH0.l
welcome.endIndex
将是11
答案 0 :(得分:18)
Swift 2
我们将使用var
,因为removeRange
需要对可变字符串进行操作。
var welcome = "hello there"
这一行:
let range = welcome.endIndex.advancedBy(-6)..<welcome.endIndex
表示我们从字符串的末尾开始(welcome.endIndex
)并向后移动6个字符(以负数前进=后退),然后询问范围(..<
)之间的距离我们的位置和字符串的结尾(welcome.endIndex
)。
它会创建一系列5..<11
,其中包含字符串的“there”部分。
如果您从字符串中删除此字符范围:
welcome.removeRange(range)
那么你的字符串将是剩下的部分:
print(welcome) // prints "hello"
您可以采用另一种方式(从字符串的起始索引)获得相同的结果:
welcome = "hello there"
let otherRange = welcome.startIndex.advancedBy(5)..<welcome.endIndex
welcome.removeRange(otherRange)
print(welcome) // prints "hello"
这里我们从字符串(welcome.startIndex
)的开头开始,然后我们前进5个字符,然后我们从这里到字符串的末尾({{..<
) 1}})。
注意:welcome.endIndex
功能可以向前和向后工作。
Swift 3
语法已经改变,但概念是相同的。
advance