因此,例如字符 김 由 ㄱ、ㅣ 和 ㅁ 组成。我需要将韩语单词拆分成它的组成部分以获得结果 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/

10-13 04:24