2501_93160959 2025-11-03 08:25 采纳率: 33.3%
浏览 17

后端强字符、弱字符、中性字符拼接顺序控制方法

后端在进行强字符(双向字符rtl和ltr)、弱字符、中性字符混合拼接:

String temperature = "درجة الحرارة";
double temp=23.1;
String unit1="°C";
String humidity = "الرطوبة";
double gum=26.4;
String unit2="%rh";
String lightIntensity = "شدة الإضاءة";
double lig=0;
String unit3="lux";
 
String ltr=temperature+":"+temp+unit1+","+humidity+":"+gum+unit2+","+lightIntensity+":"+lig+unit3;
System.out.println(ltr);

与想要的效果是:
temperature+":"+temp+unit1+","+humidity+":"+gum+unit2+","+lightIntensity+":"+lig+unit3
不符,这是打印后的结果:

img

出现乱序的问题(不按rtl规则排序,而是按照拼接时的顺序的ltr规则排序),请教一下这个问题要如何解决?

  • 写回答

5条回答 默认 最新

  • 阿里嘎多学长 2025-11-03 09:15
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    解决方案

    你可以使用 String.format() 方法来控制字符的拼接顺序,并使用 Unicode 的方向标志来控制强字符的方向。

    String temperature = String.format("%s %s", "درجة الحرارة", temp);
    

    或者使用 StringBuilder 来拼接字符串:

    StringBuilder sb = new StringBuilder();
    sb.append("درجة الحرارة");
    sb.append(" ").append(temp);
    String temperature = sb.toString();
    

    在这两种方法中,使用 String.format()StringBuilder 来拼接字符串,可以避免强字符的方向问题。

    注意

    在 Java 中,强字符的方向是通过 Unicode 的方向标志来控制的。例如,درجة الحرارة 是一个从右向左的强字符,使用 String.format()StringBuilder 来拼接字符串时,需要注意强字符的方向标志。

    推荐

    在后端开发中,使用 String.format()StringBuilder 来拼接字符串是更好的选择,因为它们可以更好地控制字符的方向和顺序。

    评论

报告相同问题?

问题事件

  • 创建了问题 11月3日