我有以下算法可以连接阿拉伯文本和英语文本

private String getFormatedArabicEnglishMessage (String [] parts) {

    String retString = "";

    for (int i = 0; i < parts.length; i++) {

        if (MyServices2Utils.isProbablyArabic(parts[i]) == true) {
            retString += "\u202B" + new String(" ") + "\u202C";
            retString += "\u202B" + new String(parts[i].getBytes()) + "\u202C";
            retString += "\u202B" + new String(" ") + "\u202C";
        } else {
            retString += " ";
            retString += parts[i];
            retString += " ";
        }
    }

    return retString;
}


但并非在所有情况下都有效:

在默认语言环境== ar的情况下,我得到以下结果:

 

在默认语言环境==的情况下,我得到以下结果:

最佳答案

如果我理解正确,那么您的问题是,每当Locale不是阿拉伯语时,append方法就会在右侧而非左侧添加文本,这是书写阿拉伯文字的方式(从右至左)。

如果这是问题所在,则必须检查Locale,如果它不是阿拉伯语,则需要将此属性设置为TextView或使用的任何内容:

android:textDirection="anyRtl"


有关更多信息,请参见this

10-06 13:05