代码之家  ›  专栏  ›  技术社区  ›  Robert J. Walker

Java中的国际化单词包装

  •  1
  • Robert J. Walker  · 技术社区  · 15 年前

    我需要对Java进行良好的文字包装处理。不太难,除了一个问题:因为我正在开发一个国际化的应用程序,它需要正确处理中文、日文和韩文文本。在这些语言中,单词换行发生在字符之间,因为字符本身就是单词,并且没有空格。不仅如此,由于该文本可能包含用拉丁字符表示的外来词, 单词必须经过特殊处理,不能像文本的其他部分那样在字符之间断开。文本和图形上下文都需要支持换行(坐标以字符或像素单位表示)。

    是否有一个现有的包可以这样做?我没见过。如果没有,谁能告诉我一个处理这种情况的好算法?该代码可以访问 Locale 对象,该对象对应于要包装的文本的语言(如果需要)。贪婪算法(每一行尽可能多地使用文本)就可以了。

    2 回复  |  直到 5 年前
        1
  •  3
  •   McDowell rahul gupta    15 年前

    BreakIterator ICU project 看看它是否有更好的东西(一些Java实现来自那里)。图形处理将取决于您的GUI库,但是AWT/Swing Font API支持确定行度量。(如果没有“Locale”实例,您可能可以使用 Unicode blocks .)

        2
  •  1
  •   Matthew Talbert    15 年前

    看来ICU4J库可以满足您的需要。看见 boundary analysis

    推荐文章