2501_93160959 2025-11-02 17:10 采纳率: 33.3%
浏览 10

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

后端再进行强字符(双向字符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规则排序),这个问题要如何解决?

  • 写回答

4条回答 默认 最新

  • 阿里嘎多学长 2025-11-02 17:29
    关注

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

    解决方案

    你可以使用 Java 的 String.format() 方法或 MessageFormat 类来控制字符的拼接顺序。具体实现如下:

    import java.text.MessageFormat;
    
    public class Main {
        public static void main(String[] args) {
            String temperature = "درجة الحرارة";
            double temp = 23.1;
            String result = MessageFormat.format("{0} {1}°C", temperature, temp);
            System.out.println(result);
        }
    }
    

    或者使用 String.format() 方法:

    public class Main {
        public static void main(String[] args) {
            String temperature = "درجة الحرارة";
            double temp = 23.1;
            String result = String.format("%s %f°C", temperature, temp);
            System.out.println(result);
        }
    }
    

    在这两个例子中,temperaturetemp 的值将按照指定的顺序拼接到 result 中。

    评论

报告相同问题?

问题事件

  • 创建了问题 11月2日