11 swift
要删除指定范围的子字符串,请使用removeRange(_ :)方法:
Run Code Online (Sandbox Code Playgroud)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"
Run Code Online (Sandbox Code Playgroud)
这就是我的成果:
"要更改开始和结束索引,请使用
advance()."
来自:https://stackoverflow.com/a/24045156/4839671
advance()欢迎提供更好的文档.即它的论点
使用
..<使省略了其上限值的范围摘录自:Apple Inc."The Swift Programming Language."iBooks.https://itun.es/ca/jEUH0.l
welcome.endIndex 将是11
aya*_*aio 19
斯威夫特2
我们将要使用,var因为removeRange需要对可变字符串进行操作.
var welcome = "hello there"
Run Code Online (Sandbox Code Playgroud)
这一行:
let range = welcome.endIndex.advancedBy(-6)..<welcome.endIndex
Run Code Online (Sandbox Code Playgroud)
意味着我们从string(welcome.endIndex)的末尾开始并向后移动6个字符(前进一个负数=向后移动),然后询问..<我们的位置和字符串结尾()之间的范围(welcome.endIndex).
它创建了一系列5..<11,包含字符串的"那里"部分.
如果从字符串中删除此字符范围:
welcome.removeRange(range)
Run Code Online (Sandbox Code Playgroud)
然后你的字符串将是剩下的部分:
print(welcome) // prints "hello"
Run Code Online (Sandbox Code Playgroud)
您可以采用另一种方式(从字符串的起始索引)获得相同的结果:
welcome = "hello there"
let otherRange = welcome.startIndex.advancedBy(5)..<welcome.endIndex
welcome.removeRange(otherRange)
print(welcome) // prints "hello"
Run Code Online (Sandbox Code Playgroud)
这里我们从string(welcome.startIndex)的开头开始,然后我们前进5个字符,然后我们..<从这里到string(welcome.endIndex)的末尾创建一个range ().
注意:该advance功能可以前进和后退.
斯威夫特3
语法已更改,但概念是相同的.
var welcome = "hello there"
let range = welcome.index(welcome.endIndex, offsetBy: -6)..<welcome.endIndex
welcome.removeSubrange(range)
print(welcome) // prints "hello"
welcome = "hello there"
let otherRange = welcome.index(welcome.startIndex, offsetBy: 5)..<welcome.endIndex
welcome.removeSubrange(otherRange)
print(welcome) // prints "hello"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9237 次 |
| 最近记录: |