2017-02-18 8 views
1

Ich schreibe ein Programm mit zwei Bedingungen "orgi" und "sort". Orgi zeigt die Eingaben in der Reihenfolge des Einfügens an. Sortieren zeigt die Eingaben in der Reihenfolge ihres Einfügens sowie in alphabetischer Reihenfolge sortiert an.Wie setze ich Bedingungen für die Kommandozeileneingabe, um den ersten Wert in der Ausgabe zu vermeiden

Hier mein Code der Ausgabe der in, wenn die Bedingung „orgi“ und „Art“ werden ebenfalls angezeigt. Wie kann ich dieses Problem beheben?

Befehlszeile eingegeben wird: sort "raam" "ram" "Ravi"

public static void main(String[] args) 
{ 
    Scanner keyboard = new Scanner(System.in); 
    if(args[0].equals("orgi")) 
    { 
     System.out.println("Here is a list of the names as read in:"); 
     for (String s: args) 
     { 
      System.out.println(s); 
     } 
      System.out.println("Press Enter to continue ... "); 
      keyboard.nextLine(); 
    } 
    if(args[0].equals("sort")) 
    { 
     System.out.println("Here is the list of the names as read in:"); 
     for(String s: args) 
    { 
     System.out.println(s); 
    } 
     System.out.println("Press Enter to continue ... "); 
     keyboard.nextLine(); 
     System.out.println("And here is a sorted list of the names as read in:"); 
     Arrays.sort(args); 
     for (String s: args)System.out.println(s); 
    } 
} 
+0

Das Programm läuft gut, das einzige Problem ist, dass Sie das erste Argument betrachten, das Sie für die bedingte Überprüfung als Eingabe für die Bestellung verwendet haben. – BeginnersSake

Antwort

1

Ersetzen Sie diese:

for (String s: args) 

mit diesem:

for (int i = 1; i < args.length; i++) { 
    System.out.println(args[i]); 
} 
+0

Das sollte 'args.length' sein –

+0

Hoppla, Danke David! –

0

Sie müssen den Rest der Argumente ohne t übernehmen er erster Artikel. Die lapidare Weise, die ich denken kann, das zu tun ist:

Arrays.asList(args).subList(1, args.length); 

würden Sie dann mit Collections.sort müssen aussortieren statt Arrays.sort. Um es auf ein Array zurück, wenn Sie brauchen, dass, könnten Sie verwenden:

String[] rest = Arrays.asList(args) 
     .subList(1, args.length) 
     .toArray(new String[args.length - 1]); 
2

Sie können eine separate Kopie der erforderlichen Daten erstellen System.arraycopy Verwendung für die weitere Verwendung

String[] args_data = new String[args.length-1]; 
    // length of args_data will be one less element than args so args.length-1 

    System.arraycopy(args, 1, args_data, 0, args.length-1); 
    // copy elements into args_data from args , starting from args[1] 

    // args_data will contain only data as "raam", "ram", "ravi" 

so verwenden args_data zum Sortieren und Anzeige, außer in if Zustand

zB

if(args[0].equals("orgi")) 
{ 
    for (String s: args_data) 
    { 
     System.out.println(s); 
    } 
} 
if(args[0].equals("sort")) 
{ 
    for(String s: args_data) 
    { 
     System.out.println(s); 
    } 
    Arrays.sort(args_data); 
    for (String s: args_data)System.out.println(s); 
} 
+1

Vielen Dank es hat funktioniert –

+0

@ K.Ji ich bin froh, dass ich helfen konnte, glücklich Codierung –

Verwandte Themen