2017-02-10 4 views
0

、ユーザーがコマンドライン引数を入力した場合:Javaの3つの入力から中間の番号を取得するにはどうすればよいですか?例えば

Javaプログラム9 1 3.3

私は順番に入れて印刷するプログラムのために使用するどのような式

3.3は1と9の間にあります

3つの式が必要ですが、具体的にはどのようなものでしょうか?それは、最小限のコードで引数をソートするためにこれを試してみました、それが動作します

+0

あなたはソートアルゴリズムで見てみる必要があります... –

+0

あなたは「クイックソート」、効率的なソートアルゴリズムを使用することができます... – Palani

+0

ます3つの数字をソートするクイックソートほど複雑なものは必要ありません。 – khelwood

答えて

0

簡単です。

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

この溶液とジャックFlampによって提供される一つの主な違いは、ソート順である:数値をソートする代わりに、辞書順(アルファベット順)の数値順序を使用すべきです。

UPDATE:文字列が二重に変換されたときしかし、私たちはその正確な表現を失う:11.01.00がStringで異なっているが、ダブルですべて同じ。このような状況を防ぐために、あなただけの並べ替えのための変換を行うことができます。

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

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

プリントアウトは、あなたが数値配列に3つの引数argsを変換し、それを並べ替えることができます

関連する問題