如何从 Java 中的三个输入中获取中间数字?

How to I get the middle number from three inputs in Java?

例如,如果用户输入命令行参数:

java 程序 9 1 3.3

程序用什么公式排序打印出来:3.3在1到9之间

我需要三个公式,具体是什么?

它尝试用最少的代码对 args 进行排序,并且有效:

public static void main(String[] args) {
    Arrays.sort(args);
    for (int i = 0; i < args.length; i++) {
        System.out.println(args[i]);
    }
}

打印输出很容易

您可以将 3 个参数 args 转换为数值数组并对其进行排序。

public static void main(String[] args) {
    double[] numbers = new double[3];
    for (int i = 0; i < 3; i++) {
        numbers[i] = Double.parseDouble(args[i]);
    }
    Arrays.sort(numbers);
    ...
}

这个解决方案和Jack Flamp提供的解决方案的主要区别在于排序顺序:排序数字应该使用数字顺序而不是字典顺序(字母顺序)。

UPDATE:但是,当 String 转换为 double 时,我们失去了它的精确表示:11.01.00 是在 String 中不同,但在 double 中都一样。为了防止这种情况,可以只对排序做转换:

public static void main(String[] args) {
    Arrays.sort(args, new Comparator<String>() {
        @Override
        public int compare(String s1, String s2) {
            double d1 = Double.parseDouble(s1);
            double d2 = Double.parseDouble(s2);
            return Double.compare(d1, d2);
        }
    });
    ...
}