在Java中替换后,阿拉伯语文本对齐中的英语发生了变化

时间:2015-04-16 14:41:58

标签: java replace arabic

我要求在阿拉伯语行中替换客户名称,帐号,密码值等英语密钥。我有像CUST_NAME,ACC_NO和PWD_VAL这样的占位符。

替换后,阿拉伯语文本的对齐方式正在发生变化,如下所示。有没有办法阻止它。

public class TestArabic
{
    public static void main(String...strings){
        String text="عزيزي "+"\u202A"+" CUST_NAME "+"\u202C"+" ، ل حساب عدد هو: "+"\u202A"+" ACC_NO "+"\u202C"+" و كلمة السر هي :"+"\u202A"+" PWD_VAL "+"\u202C"+" ، يرجى تغيير في تسجيل الدخول الأول";

        System.out.println(text);
        text = text.replace("CUST_NAME", "John");
        text = text.replace("ACC_NO", "1234");
        text = text.replace("PWD_VAL", "pass");

        System.out.println(text);
    }
}

输出

enter image description here

2 个答案:

答案 0 :(得分:2)

问题不是来自java,而是来自您使用的控制台或输出窗口,对于Eclipse,只需按( RIGHT CTRL + RIGHT SHIFT )(基于在系统配置上)以从右到左的方式对输出进行调整。顺便说一下,我将文本修改为:

String text="عزيزي "+"" +" CUST_NAME "+""+" ،  الحساب  عدد هو: "+""+" ACC_NO "+""+" و كلمة السر هي :"+""+" PWD_VAL "+""+" ، يرجى تغيير في تسجيل الدخول الأول";

Eclipse with right-to-left output alignment.

答案 1 :(得分:1)

尝试在帐号末尾添加left-to-right mark字符:

" ACC_NO\u200E "