我创建了一个包含两个字符串的数组:
var palabras: [String] = ["Gato", "Martillo"]
我想展示这两个数组字符串的第一个字符。
我尝试过:
letraLabel.text = palabras[round - 1].startIndex.advancedBy(0)
但我得到一个错误:由于信号命令失败:分段错误:11 我不知道它是什么意思。
我也试过了:
letraLabel.text = palabras[round - 1].startIndex
我收到错误: 无法指定类型'索引'的值(又名' String.CharacterView.Index')键入' String?'
最后我尝试过:
letraLabel.text = palabras[round - 1][palabras.startIndex]
但我也遇到了错误: '下标'不可用:不能使用Int下标String,请参阅文档注释以供讨论
如何获取数组中两个单词的第一个字符? 那么,是否需要导入Foundation来获取String的第一个字符? 顺便说一句,当我写" import Foundation" compiller向我展示了一个划线的基础。
答案 0 :(得分:1)
尝试:
letraLabel.text = String(palabras[round - 1].characters.first!)
如果你想用第一个字母创建另一个数组:
let palabras = ["Gato", "Martillo"]
let firstLetters = palabras.map { String($0.characters.first!) }
print(firstLetters) // ["G", "M"]
答案 1 :(得分:0)
怎么样:
for palabra in palabras {
let letra = palabra[palabra.startIndex]
// do something with letra here...
}
或者,如果您不想遍历每个palabra
,这样的事情可能有效:
let palabra = palabras[0]
let letra = palabra[palabra.startIndex]
// do something with letra here...
答案 2 :(得分:0)
我认为你很接近。试一试
let charStr = palabras[round - 1]
letraLabel.text = charStr.substringToIndex(charStr.startIndex.advancedBy(1))
或者如果你想将所有第一个字符连接在一起:
letraLabel.text = palabras.map({ $0.substringToIndex($0.startIndex.advancedBy(1)) }).joinWithSeparator("")
答案 3 :(得分:0)
您也可以更轻松地执行此操作,但是完成工作。假设你有一个带有两个字符串的变量。你可以简单地使用
someLabel.text = firstName.characters.first?.description + lastName.characters.first?.description