相关疑难解决方法(0)

你如何使用String.substringWithRange?(或者,Ranges如何在Swift中工作?)

我还没有弄清楚如何String在Swift中获取a的子串:

var str = “Hello, playground”
func test(str: String) -> String {
 return str.substringWithRange( /* What goes here? */ )
}
test (str)
Run Code Online (Sandbox Code Playgroud)

我无法在Swift中创建一个Range.游乐场中的自动填充功能并不是非常有用 - 这就是它的建议:

return str.substringWithRange(aRange: Range<String.Index>)
Run Code Online (Sandbox Code Playgroud)

我没有在Swift标准参考库中找到任何有帮助的内容.这是另一个疯狂的猜测:

return str.substringWithRange(Range(0, 1))
Run Code Online (Sandbox Code Playgroud)

还有这个:

let r:Range<String.Index> = Range<String.Index>(start: 0, end: 2)
return str.substringWithRange(r)
Run Code Online (Sandbox Code Playgroud)

我已经看到其他答案(查找Swift字符串中的字符索引)似乎表明,因为它String是一种桥接类型NSString,"旧"方法应该有效,但是不清楚如何 - 例如,这也不起作用(似乎不是有效的语法):

let x = str.substringWithRange(NSMakeRange(0, 3))
Run Code Online (Sandbox Code Playgroud)

思考?

swift

258
推荐指数
15
解决办法
22万
查看次数

如何在Swift中使用substringToIndex?

我在这一行遇到编译器错误:

UIDevice.currentDevice().identifierForVendor.UUIDString.substringToIndex(8)
Run Code Online (Sandbox Code Playgroud)

类型'String.Index'不符合协议'IntegerLiteralConvertible'

我的意图是得到子串,但是如何?

substring swift

67
推荐指数
1
解决办法
6万
查看次数

如何比较Swift中的范围?

我不确定它是否是XCode中的错误,或者我不理解Swift中的范围.以下是一些显示范围如何工作的代码:

let range = 0..<5
contains(range, 0) // true
contains(range, 5) // false
range.startIndex == 0 // true
range.endIndex == 5 // true

let str = "Hello, playground"
str.rangeOfString("Hello")! // 0..<5
Run Code Online (Sandbox Code Playgroud)

大!现在让我们使用真正的代码:

let str = "Hello, playground"
if let range = str.rangeOfString("Hello") {
    if range.startIndex == 0 {
        print("str starts with 'Hello'")
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在读取跟踪错误 if range.startIndex == 0 {

无法使用类型为(String.index,IntegerLiteralConvertible)的参数lis调用'=='

swift

7
推荐指数
2
解决办法
3287
查看次数

标签 统计

swift ×3

substring ×1