我在SWIFT 3上的应用程序,我在屏幕上显示一个句子并记录用户的声音,看它是否匹配。
我想提取句子的每个单词以分别比较每个单词。
我使用代码:
let StringToLearn = word?.text
let StringToLearnArr = StringToLearn?.characters.split{$0 == " "}.map(String.init)
print("StringToLearn: \(StringToLearn)")
print("StringToLearnArr: \(StringToLearnArr)")
print("StringRecorded: \(StringRecorded)")
let StringRecordedArr = StringRecorded.characters.split(whereSeparator: {$0 == " "})
print("StringRecordedArr: \(StringRecordedArr)")
info:让StringRecorded等于(Siri Speech API):
(result?.bestTranscription.formattedString)!
控制台给我:
StringToLearn: Optional("My name is Florian")
StringToLearnArr: Optional(["My", "name", "is", "Florian"])
StringRecorded: My name is
StringRecordedArr: [Swift.String.CharacterView(_core: Swift._StringCore(_baseAddress: Optional(0x0000000174030d11), _countAndFlags: 4611686018427387906, _owner: Optional(My name is))), Swift.String.CharacterView(_core: Swift._StringCore(_baseAddress: Optional(0x0000000174030d14), _countAndFlags: 4611686018427387908, _owner: Optional(My name is))), Swift.String.CharacterView(_core: Swift._StringCore(_baseAddress: Optional(0x0000000174030d19), _countAndFlags: 4611686018427387906, _owner: Optional(My name is)))]
如何让StringRecordedArr得到相同的结果来比较两个数组的每个项目?
非常感谢。
答案 0 :(得分:2)
你最终想要的是一个字符串数组,所以使用String版本代替字符版本:.components(separatedBy:""):
print("StringRecorded: \(StringRecorded)")
let StringRecordedArr = StringRecorded.components(separatedBy: " ")
print("StringRecordedArr: \(StringRecordedArr)")
答案 1 :(得分:2)
您可以使用简单的z = 0x0F
API。
这是一个看起来更好并且有效的示例:
components(separatedBy:)
注意: nonoptionals比强制unwraps和optionals更好。