如何分割字符串— Swift 3.0

当我尝试通过使用for-in循环遍历字符串来拆分字符串时,不断出现以下错误:

尽管此错误告诉我,与数组不同,无法使用for-in循环拆分字符串,但它未提供有关如何修复错误的指导。 自然,我从Stackoverflow寻求帮助。 在下面,您将找到我搜索的结果:两种分割字符串的方法……。

选项1:在要拆分的字符串的末尾添加.characters 。 在下面的示例中,循环遍历字符串,并逐个字符(包括空格)对其进行拆分。

最终结果:

正如您在左侧看到的那样,使用.characters可以拆分字符串中的单词以及每个单词中的字母。 根据最终目标,返回字符串中每个单词的每个字符可能会造成一些混乱。

但是,当您想更改字符串中的每个字符时,使用.characters拆分字符串很有用。 在下面的示例中,我使用.charactersstringOfWords中的每个字符(包括空格)替换为图像(“🦄”)。

最终结果:

选项2:使用components(separatedBy 🙂创建一个数组,其中包含要拆分的字符串中的每个单词。 在下面的示例中,字符串中的每个单词都分成一个数组,然后可以使用for-in循环进行迭代。

最终结果:

当目标是以相同方式更改字符串中的每个项目(或本例中的单词)时,此选项很有用。 例如,在下面的示例中,我使用components(separatedBy 🙂将stringOfWordsArray中的每个单词更改为Pig Latin。 我不希望每个字符都发生变化,而是希望每个单词在每次迭代过程中都以相同的方式进行更改(将原始单词的第一个字母移动到单词的末尾并添加“ ay”)。

最终结果:

在决定使用.characters还是component(separatedBy :)时 ,问自己“为什么拆分字符串? 我的最终目标是要更改/使用字符串中的每个字符 ,还是要更改/使用字符串中的每个单词 ?”如果答案是前者,则应使用.characters 。 相反,如果是后者,则可以使用components(separatedBy 🙂

以下有用的链接…。

components(separatedBy 🙂 — Stackoverflow

获取字符串的第n个字符-Stackoverflow

字符串和字符概述-Apple的Swift编程语言(Swift 3)