当前位置: 首页 > 面试题库 >

Swift版本的ComponentsSeparatedByString

逄边浩
2023-03-14
问题内容

我知道它的菜鸟问题,我真的在询问之前四处搜寻。但是我想知道的事情并没有确切的答案。我们如何不使用目标C将字符串拆分为数组?例如:

var str = "Today is so hot"
var arr = str.componentsSeparatedByString(" ")  // *
  • 我知道它不起作用,但是我正在寻找那样的东西。我想用“”分割字符串(或其他字符/字符串)

想法:对我来说可能很好,扩展了字符串类。但是我不知道我该怎么做。

编辑:忘记导入基础。如果我导入基础,它将起作用。但是与扩展String类有什么关系吗?谢谢


问题答案:

如果要按给定 字符 分割字符串,则可以使用内置split()方法,而无需Foundation:

let str = "Today is so hot"
let arr = split(str, { $0 == " "}, maxSplit: Int.max, allowEmptySlices: false)
println(arr) // [Today, is, so, hot]

Swift 1.2更新: 使用Swift 1.2(Xcode 6.3)更改了参数的顺序,比较[拆分现在抱怨缺少“
isSeparator”]

let str = "Today is so hot"
let arr = split(str, maxSplit: Int.max, allowEmptySlices: false, isSeparator: { $0 == " "} )
println(arr) // [Today, is, so, hot]

Swift 更新:

let str = "Today is so hot"
let arr = str.characters.split(separator: " ").map(String.init)
print(arr)


 类似资料:
  • 本页内容包括: XCode6.4 Beta Swift语法文档更新 XCode6.3正式版 Swift语法文档更新 XCode6.2正式版 Swift语法文档更新 XCode6.2 Beta3 Swift语法文档更新 XCode6.2 Beta2 Swift语法文档更新 XCode6.2 Beta1 Swift语法文档更新 XCode6.1.1正式版 Swift语法文档更新 XCode6.1 Sw

  • 问题内容: 是否可以更改用于构建框架的Carthage Swift版本? 我试图将我的项目迁移到Swift 3(在Xcode 8 beta上),并且第三方库是唯一阻止我的项目编译的东西。在为swift 3使用特定分支时,迦太基会抛出有关新Swift语法的错误。 任何帮助将不胜感激! 问题答案: 迦太基使用命令行工具来构建框架。命令行系统使用的Xcode版本由工具选择的值确定 它需要指向Develo

  • 问题内容: 我正在尝试在Swift中检查系统信息。我发现,可以通过代码实现: 这段代码有两个问题: sysData的初始值应该是多少?此示例在retVal中给出-1,可能是因为sysData为nil。 如何从sysData中读取信息? 问题答案: 对于iOS,请尝试: 对于OS X,请尝试: 如果您只想检查用户是否正在运行至少特定版本,则还可以使用以下可在iOS和OS X上运行的Swift 2功能

  • 我最近将xcode更新到了版本9。在此之前,在xcode 8.x中,每当我使用它进行<code>pod更新</code>时,它都会向我显示一个更新代码,将代码转换为Swift 3并解决错误。但现在它给了我一个错误: 对于使用Swift的目标,“Swift语言版本”(Swift_Version)生成设置必须设置为支持的值。可以在生成设置编辑器中设置此设置。 对于这个错误,我尝试了< code >构建

  • 我刚刚在Xcode中创建了一个新的Swift项目。我想知道它使用的是哪个版本的Swift。 我如何在Xcode或终端中看到我在项目中使用的Swift的哪个版本?

  • 问题内容: 我知道我可以找到我正在运行的Swift版本,还原到Terminal并输入: 另外,我一直在阅读有关Swift中的预处理器宏的信息,但是找不到Swift版本常量很幸运。 随着Swift 1.2的到来,最好标记仅在Swift 1.1上运行的旧代码(Xcode最高为6.2)或需要Xcode 6.3的新代码(Swift 1.2)。 注意:我也可以使用system()做类似的事情: 然后打开so