java - 将韩文音节分解为字母 (jamo)

标签 java unicode character unicode-normalization

我正在开发一个处理韩语句子的程序,我需要一种将音节或 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/

相关文章:

java - 检测无字符的最佳 Java 8 字符方法是什么?

字符数组 C 中的字符插入

java - 有没有办法使用 TestNG 数据提供程序为测试用例指定特定名称?

java - 使用树缓存进行 Infinispan 驱逐

java - 使用特定值拆分 ArrayList<ProductBean>

python - 使用 unicode 时颜色条标签截止

c - getaddrinfo 删除最后一个字符

java - 在Java中将int转换为double期间精度会略有变化吗?

php - 是否可以使用 PHP 检查浏览器的默认字体设置?

perl - 在 Perl 中规范化 Unicode 字符串