2017-10-30 5 views
1

Ich versuche "Args" in aufsteigender Reihenfolge zu sortieren, was fehlt mir? Immer, wenn ich zufällige Argumente in die Befehlszeile eingeben, die ersten beiden funktionieren, bekomme ich ein Array und eine Zeichenfolge. Bei der dritten möchte ich jedoch, dass das Array in aufsteigender Reihenfolge sortiert wird. Der Eingang ist immer 0.Wie sortiere ich Args in aufsteigender Reihenfolge?

Ich habe auch versucht, meinen eigenen Algorithmus zu erstellen, aber es funktioniert nicht.

import java.util.Arrays; 

public class tri { 

public static void main (String[] args) 
{ 
    if (args.length < 3) { 
     System.out.println("Re-execute with at least 3 arguments"); 
     System.exit(-1); 
    } 

    System.out.println("\n Printing as an array:"); 

    for (int i=0; i < args.length; i++)  //print each word 
     System.out.println(args[i]); 

    String str = ""; 

    for (int i=0; i < args.length; i++) 
     str = str + args[i] + " ";   //concatenate into a string 

    System.out.println("\n Printing as a string:"); 

    System.out.println(str);    //print the string 


    System.out.println("\n Printing after sorting:"); 


    int [] sorted = new int[args.length]; 
    Arrays.sort(sorted);     //sort the sorted array 
    System.out.println(Arrays.toString(sorted)); 

    /*for (int i=0; i < args.length - 1; i++) { 
     System.out.print(args[i] + " "); 
    }*/ 
} 
} 

Ausgang:

Printing as an array: 
ball 
cat 
ship 

Printing as a string; 
ball cat ship 

Printing after sorting; 
[0, 0, 0] 
+1

'int [] sortiert = neu int [args.leng th]; 'Hier haben Sie gerade ein Array von ganzen Zahlen erstellt, aber keinen Wert zugewiesen. int hat einen Standardwert von 0, der in o/p gedruckt wird. Ich bin mir nicht ganz sicher, was Sie hier versuchen, aber anscheinend haben Sie eine Reihe von Argumenten und wollen sie sortieren (vielleicht?). Aber warum dann 'int' benutzen? – Arpit

+0

Ja, ich habe eine Reihe von Argumenten, und ich wollte sie sortieren. Ich hätte int nicht benutzen sollen. Ich habe auch den Wert vergessen und dachte irgendwie, dass es von "Argumenten" kommen würde. – Thammy

Antwort

1

Ich bin ziemlich sicher, das ist, was Sie zu tun versuchen:

import java.util.Arrays; 

public class Tri { 
    public static void main(String[] args) { 
     Arrays.sort(args); 
     System.out.println(Arrays.toString(args)); 
    } 
} 

Als Programmargumente trat ich "abc" "efg" "abz" und der Ausgang war

[abc, abz, efg] 

Process finished with exit code 0 
+0

Vielen Dank! Ich habe klar übertrieben. – Thammy

+0

Gute Antwort. Würdig für eine Verbesserung (-: – piRSquared

Verwandte Themen