我正在开发一个处理韩语句子的程序,我需要一种将音节或 block 分解为字母的方法。对于那些不懂韩文的人来说,一个音节由 2-4 个字母 (jamo) 组成,创造出数千种不同的组合。我想做的是将这些音节分解成组成它的字母。
我能够通过将其 Unicode 值与该范围内的相关字母进行比较来获得第一个字母,即以 x 字母开头的音节在 y 范围内。但是,我找不到其余的字母。
这是一个包含韩文音节的 Unicode 值的表:http://jrgraphix.net/r/Unicode/AC00-D7AF
最佳答案
Hangul 音节分解(例如 퓛
→ ᄑ
+ ᅱ
+ ᆶ
)在 Java 中通过java.text.Normalizer
类:
String s = Normalizer.normalize("\uD4DB", Normalizer.Form.NFD);
韩文分解的算法也在Section 3.12 of the Unicode Standard (from page 142)中给出;由于规范化也会影响其他非韩文字符,因此您应该熟悉 UAX #15 中 Unicode 规范化的一般原则和形式。 .
关于java - 将韩文音节分解为字母 (jamo),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41309402/