Swift 2.0中的字符串索引:如何为字符串编制索引?

Swift 2.0中的字符串索引:如何为字符串编制索引?,swift,swift2,Swift,Swift2,我正在尝试获取字符串的内容: var oldString = "hi this \t is my \t string" oldString = String(oldString.componentsSeparatedByString("\t")) print(oldString[1]) 我得到错误:“‘下标’不可用:无法为字符串下标 带一个Int…” 如何访问包含在另一个字符串中的字符串? 我想到的唯一方法是使用以下方法逐个字符地获取字符: for index in content.chara

我正在尝试获取字符串的内容:

var oldString = "hi this \t is my \t string"
oldString = String(oldString.componentsSeparatedByString("\t"))
print(oldString[1])
我得到错误:“‘下标’不可用:无法为字符串下标 带一个Int…”

如何访问包含在另一个字符串中的字符串? 我想到的唯一方法是使用以下方法逐个字符地获取字符:

for index in content.characters.indices{
    print(String(oldString[index]))
}
上述代码导致:

h,
i,
t,
h,
..
我需要:

hi this,
is my,
string

提前谢谢你

您应该阅读错误消息并找出错误消息的来源。

您的
字符串(oldString.componentsSeparatedByString(“\t”)
为您提供了一个
字符串
而不是
[String]


您需要做的是将
oldString.componentsSeparatedByString(“\t”)
分配给数组:

let stringArray = oldString.componentsSeparatedByString("\t")
for str in stringArray {
  print(str)
}

在swift中,您可以扩展任何类型,并为不同的操作添加重载。在下面的示例中,我们创建了一个扩展,它允许您对返回的每个单词下标
String
,并从字符串中获取一个数组

只需将其粘贴到操场中进行测试:

extension String {
    
    func array() -> [String] {
        return self.componentsSeparatedByString("\t")
    }
    
    subscript (i: Int) -> String {
        return self.componentsSeparatedByString("\t")[i]
    }
}
添加扩展后,您可以在整个应用程序中使用它,如下所示:

var str = "hi this \t is my \t string"

print(str[0]) //prints hi this

for i in str.array() {
    print(i)
}
印刷品:

嗨,这个

是我的


这是有道理的。如何将其设置为[String]?
oldString。componentsSeparatedByString(“\t”)
返回一个
[String]
。您正在获取结果并从中生成一个新字符串,这不是您想要做的。
var str = "hi this \t is my \t string"

print(str[0]) //prints hi this

for i in str.array() {
    print(i)
}