我正在编写一个代码,它将从国际音标中获取字符,并将它们建模为音素以进行语音分析。我需要能够将符号的某些部分(变音符号(与某些 unicode 字符进行比较。这就是我目前正在做的事情(什么不起作用(
let diacritics : [String : String] = [
...
"u{2B0}" : "aspirated",
...
]
let elementsInSample = Array(sample)
for element in elementsInSample {
if diacritics.keys.contains(String(element)) {
\Do things
}
}
当键在 Unicode 中时,.contains 将返回 h 的假值。如何重新排列类型以使其准确?
您可能希望使用 Unicode 标量,而不是字符。
let diacritics : [Unicode.Scalar : String] = [
//...
"u{2B0}" : "aspirated",
//...
]
let sample = "ʰ"
for element in sample.unicodeScalars {
if let value = diacritics[element] {
print(value)
}
}