我目前使用带有起始索引和长度的substringWithRange():
let str = "Hello World"
let index = 0
let length = 3
str.substringWithRange(Range<String.Index>(start: str.startIndex.advancedBy(index), end: str.startIndex.advancedBy(index + length))) // "Hel"
这样可以正常工作,但有没有办法,使用更简单更优雅的语法?
我可以使用NSRange,但我只想使用纯Swift代码。
答案 0 :(得分:0)
我相信没有其他方法可以迅速完成。但是如果你真的需要它,你可以创建自己的扩展:
extension String {
func substringWithRange(var aRange: Range<Index.Distance>) -> String {
aRange.startIndex = max(aRange.startIndex, 0)
aRange.endIndex = max(aRange.endIndex, aRange.startIndex)
return substringWithRange(Range<String.Index>(
start: startIndex.advancedBy(aRange.startIndex),
end: startIndex.advancedBy(aRange.endIndex)))
}
}
现在您可以执行以下操作:
str.substringWithRange(index..<index+length)
答案 1 :(得分:0)
ActionBar