我正在尝试获取字符串的内容:
var oldString = "hi this \t is my \t string"
oldString = String(oldString.componentsSeparatedByString("\t"))
print(oldString[1])
我得到了错误:“'下标'不可用:不能下标String 与Int ...“
我如何访问另一个字符串中包含的字符串? 我想出的唯一方法是使用:
逐个字符for index in content.characters.indices{
print(String(oldString[index]))
}
上面的代码导致:
h,
i,
t,
h,
..
我需要:
hi this,
is my,
string
提前谢谢!
答案 0 :(得分:1)
您应该阅读错误消息并找出错误消息的来源。
您的String(oldString.componentsSeparatedByString("\t"))
为您提供String
而不是[String]
。
您需要做的是将oldString.componentsSeparatedByString("\t")
分配给数组:
let stringArray = oldString.componentsSeparatedByString("\t")
for str in stringArray {
print(str)
}
答案 1 :(得分:1)
在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)
}
打印:
你好
是我的
的字符串
答案 2 :(得分:0)
var oldString = "hi this \t is my \t string"
let stringArray = oldString.componentsSeparatedByString("\t")
//In case you also need the index while iterating
for (index, value) in stringArray.enumerate(){
print("index is \(index) and string is \(value)")
}
for str in stringArray{
print(str)
}
Output will be as follows
index is 0 and string is hi this
index is 1 and string is is my
index is 2 and string is string
hi this
is my
string