因此,例如字符 김 由 ㄱ、ㅣ 和 ㅁ 组成。我需要将韩语单词拆分成它的组成部分以获得结果 3 个字符。
我尝试执行以下操作,但似乎没有正确输出:
let str = "김"
let utf8 = str.utf8
let first:UInt8 = utf8.first!
let char = Character(UnicodeScalar(first))
问题是,该代码返回 ê,而它应该返回 ㄱ。
最佳答案
您需要使用 decomposedStringWithCompatibilityMapping
字符串来获取 unicode scalar
值,然后使用这些标量值来获取字符。下面的东西,
let string = "김"
for scalar in string.decomposedStringWithCompatibilityMapping.unicodeScalars {
print("\(scalar) ")
}
输出:
ᄀ
ᅵ
ᆷ
您可以创建字符串列表,
let chars = string.decomposedStringWithCompatibilityMapping.unicodeScalars.map { String($0) }
print(chars)
// ["ᄀ", "ᅵ", "ᆷ"]
Apple docs 中的韩文相关信息
let precomposed: Character = "\u{D55C}" // 한
let decomposed: Character = "\u{1112}\u{1161}\u{11AB}" // ᄒ, ᅡ, ᆫ
// precomposed is 한, decomposed is 한
关于swift - 如何将韩语单词拆分成它的组成部分?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56402083/