0

For example, if the user were to type in the command line argument:

java program 9 1 3.3

What formula would I use for the program to put it in order and print out: 3.3 is in between 1 and 9

I need three formulas, but what specifically would they be?

navysoul
  • 77
  • 5

2 Answers2

0

It tried this for sorting the args with minimal code and it works:

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

the printout is easy

Jack Flamp
  • 1,223
  • 1
  • 16
  • 32
0

You can convert the 3 arguments args into a numeric array and sort it.

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);
    ...
}

The major difference between this solution and the one provided by Jack Flamp is the sorting order: sorting numeric should use numerical order instead of lexicographical order (alphabetical order).

UPDATE: However, when String is converted into double, we lose its exact representation: 1, 1.0, 1.00 are different in String, but all the same in double. In order to prevent this situation, you can do the conversion only for sorting:

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);
        }
    });
    ...
}
Mincong Huang
  • 5,284
  • 8
  • 39
  • 62