首页 > 解决方案 > 如何将java字符串方向从ltr更改为rtl?

问题描述

我正在尝试使用 java 编程语言directionltrto更改为 string 。rtl我的弦

String newString = "\nالفرع: الفرع الرئيسي\n" +
            "***********************************\n" +
            "التاريخ والوقت: 2019/01/0218:01\n" +
            "نوع الحركة: مبيعات مضخات  \n" +
            "رقم الفاتورة: 14\n" +
            "طريقة الدفع: نقد  \n" +
            "المضخة: م 1 ك 1\n" +
            "\n" +
            "\n" +
            "نوع الوقود: بنزين 95\n" +
            "الكمية: 2.830\n" +
            "السعر: 1.060\n" +
            "الإجمالي: 3.000\n" +
            "\n" +
            "***********************************\n" +
            "          شكرا لزيارتكم\n" +
            " \n" +
            " ";

标签: javaright-to-leftdirection

解决方案


您正在尝试更改格式,这需要更改字符串。使用具有给定宽度的 String.format ,这将添加必要的空格以根据需要将字符串向右或向左对齐:

static String align(String str, int width, boolean right){
    String[] temp = str.split("\n");
    String frmt = "";
    if(right){
        frmt = "%" + width + "s";
    }
    else{
        frmt = "%-" + width + "s";
    }

    for(int i=0; i<temp.length; i++)
        temp[i] = String.format(frmt, temp[i]);
    return String.join("\n", temp);
}

public static void main(String[] args) {
    String newString = "\nالفرع: الفرع الرئيسي\n" +
                "***********************************\n" +
                "التاريخ والوقت: 2019/01/0218:01\n" +
                "نوع الحركة: مبيعات مضخات  \n" +
                "رقم الفاتورة: 14\n" +
                "طريقة الدفع: نقد  \n" +
                "المضخة: م 1 ك 1\n" +
                "\n" +
                "\n" +
                "نوع الوقود: بنزين 95\n" +
                "الكمية: 2.830\n" +
                "السعر: 1.060\n" +
                "الإجمالي: 3.000\n" +
                "\n" +
                "***********************************\n" +
                "          شكرا لزيارتكم\n" +
                " \n" +
                " ";
    System.out.println(align(newString, 35, false));

}

这里的宽度设置为 35,您可以将其设置为您需要的任何值。̶T̶h̶e̶̶̶w̶i̶l̶l̶̶a̶l̶i̶g̶n̶̶i̶t̶̶t̶o̶̶t̶h̶e̶̶r̶i̶g̶h̶t̶.̶̶̶ ̶-̶_


编辑:我进一步更改了它,现在调用该函数align并接受一个新参数,该参数告诉它是右对齐还是左对齐,正如在更改变量right时可以看到的那样。frmt


编辑 2:-如果语言是 ltr,则符号将左对齐,如果语言是 rtl,它将右对齐。阿拉伯语(在您的示例中显示)是 rtl,因此,您需要与英语中的内容相反。我已经用更正的代码更新了函数。对于 RTL 语言(阿拉伯语),使用align(string, width, false)和对于 LTR 语言使用align(string, with, true)


推荐阅读