是否可以在android/Java中识别字符串文本是从右到左书写的?

use*_*880 3 unicode android text right-to-left

我正在编写一个Android应用程序,我需要识别我在String中的文本是用RTL语言(从右到左)编写的?谢谢!

Ars*_*lan 5

通过检查第一个字符是否在RTL unicode字符范围内,检查给定的String是否以RTL形式写入.

  public static boolean checkRtl ( String string ) {
    if (TextUtils.isEmpty(string)) {
        return false;
    }
    char c = string.charAt(0);
    return c >= 0x590 && c <= 0x6ff;
}
Run Code Online (Sandbox Code Playgroud)


dda*_*dda 1

两件事情:

A/ http://pastebin.com/e276zn6y Javascript 代码来确定字符的脚本。应该给你一个想法。并在以下人员的帮助下:

B/ ftp://unicode.org/Public/UNIDATA/extracted/DerivedBidiClass.txt

# Bidi_Class=Right_To_Left
0590          ; R # Cn       <reserved-0590>
05BE          ; R # Pd       HEBREW PUNCTUATION MAQAF
05C0          ; R # Po       HEBREW PUNCTUATION PASEQ
05C3          ; R # Po       HEBREW PUNCTUATION SOF PASUQ
05C6          ; R # Po       HEBREW PUNCTUATION NUN HAFUKHA
05C8..05CF    ; R # Cn   [8] <reserved-05C8>..<reserved-05CF>
05D0..05EA    ; R # Lo  [27] HEBREW LETTER ALEF..HEBREW LETTER TAV
Run Code Online (Sandbox Code Playgroud)

[...] 被截断

它为您提供了所有块的方向(显示 RTL 部分的开始),您可以弄清楚其余的部分。

编辑:您可能还想检查从右到左格式字符(U+20xx),请参阅http://www.unicode.org/charts/PDF/U2000.pdf