2012-08-06 182 views
0

我想在Java中同时输出“阿拉伯语”和“英语”文本,例如输出以下语句:مرحبا I am Adham在正确的方向上同时打印阿拉伯语(RTL)和英语(LTR)

我搜索了互联网,发现这种情况下需要BiDi算法。有没有用于BiDi的Java类?

我已经试过这个类BiDiReferenceJava,我测试了它,但是当我在课堂上BidiReferenceTest打电话runSample()并输入阿拉伯语字符串作为参数,我得到了一个OutOfIndexException作为字符的计数被复制(正好在这条线的在类BidiReferenceTestCharmap)代码

byte[] result = new byte[count]; 

其中如果字符串长度为4计数为8

+0

你要输出什么?当你只是打印文本时,有什么问题? – 2012-08-07 12:02:30

+0

Java UI组件已经知道如何处理BiDi,因此通常您不需要做任何特殊的事情。 – Grodriguez 2013-06-05 12:05:40

回答

0

ICU4J或多或少是Java的标准全面Unicode库,因此支持双向算法。不过,我真的很想知道为什么你需要这个。 BiDi通常由显示层应用,除非您是文字处理器或其他东西。

BidiReference.java显然是一个演示片;它旨在显示算法如何在ASCII字符上工作,而不是使用实际的Unicode字符。

+0

听起来不像答案 – Andy 2012-08-07 21:30:31

+2

ICU4J具有适用于Java的Bidi类;这是对“BiDi有没有Java类”这个问题的直接回答。 – prosfilaes 2012-08-07 21:34:19

相关问题