如何在swift

时间:2015-12-23 14:04:45

标签: ios swift

我目前使用带有起始索引和长度的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代码。

2 个答案:

答案 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