Swift2 在Swift 2中使用拆分函数
假设我想用一个空格分割一个字符串。此代码段在Swift 1.x中运行良好。它在Xcode 7 Beta 1中的Swift 2中不起作用Swift2 在Swift 2中使用拆分函数,swift2,Swift2,假设我想用一个空格分割一个字符串。此代码段在Swift 1.x中运行良好。它在Xcode 7 Beta 1中的Swift 2中不起作用 var str = "Hello Bob" var foo = split(str) {$0 == " "} 我发现以下编译器错误: Cannot invoke 'split' with an argument list of type '(String, (_) -> _) 有人知道怎么正确地称呼这个吗 更新:添加了一条注释,说明这是针对Xcode
var str = "Hello Bob"
var foo = split(str) {$0 == " "}
我发现以下编译器错误:
Cannot invoke 'split' with an argument list of type '(String, (_) -> _)
有人知道怎么正确地称呼这个吗
更新:添加了一条注释,说明这是针对Xcode 7 beta 1的。
split
是CollectionType
的扩展方法,从Swift 2开始,String
不再符合。幸运的是,还有其他方法可以拆分字符串
:
"ab cd".componentsSeparatedByString(" ") // ["ab", "cd"]
组件
:
"ab cd".componentsSeparatedByString(" ") // ["ab", "cd"]
正如@dawg所指出的,这需要您importfoundation
字符串的字符,而不是对字符串调用split
。characters
属性返回符合CollectionType
的String.CharacterView
:
"Swift 4
let str = "Hello Bob"
let strSplitArray = str.split(separator: " ")
strSplitArray.first! // "Hello"
strSplitArray.last! // "Bob"
雨燕4
Xcode 7.1.1和Swift 2.1
在Swift 3中,通过字符串分离的组件和拆分的组件是这样使用的
let splitArray = "Hello World".characters.split(separator: " ").map(String.init) // ["Hello", "World"]
拆分
谢谢。这很有帮助。看起来选项2可能是删除可切片的的预期替代品。选项1需要导入基础
,不是吗?值得注意的是,选项1和选项2不一样。例如,如果要分隔的字符串/字符出现在字符串的开头,请选择ion 1将返回一个数组,该数组在索引0中包含一个额外的空字符串,而选项2则不会。关于第二个解决方案:您将获得一个字符集合,然后按找到的位置拆分它们“
。我不确定我是否理解其余的内容。那么,您是否尝试使用字符串构造函数将其转换为字符串/人类可读的值?init的作用是什么?它不应该是类似于String($0)
?如果字符串在两个单词之间有一个以上的空格怎么办?@zulkarnainsah同样的结果。
let splitArray = "Hello World".characters.split(separator: " ").map(String.init) // ["Hello", "World"]