如何从 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 时,我们失去了它的精确表示:1
、1.0
、1.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);
}
});
...
}
例如,如果用户输入命令行参数:
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 时,我们失去了它的精确表示:1
、1.0
、1.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);
}
});
...
}