我正在尝试使用Java编程语言将direction
从ltr
更改为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" +
" ";
答案 0 :(得分:2)
您正在尝试更改格式,这需要更改字符串。使用具有给定宽度的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
,该参数告诉它是向右对齐还是向左对齐,如更改{{1 }}变量。
编辑2:如果语言是ltr,则frmt
符号将向左对齐,如果语言是rtl,则-
将向右对齐。阿拉伯语(在您的示例中显示)为rtl,因此,您需要与英语相反。我已使用更正的代码更新了该功能。对于RTL语言(阿拉伯语),请使用align(string, width, false)
;对于LTR语言,请使用align(string, with, true)