2017-02-18 45 views
1

我正在寫一個程序有兩個條件「orgi」和「排序」。 Orgi以插入順序顯示輸入。排序按插入順序顯示輸入,並按字母順序排序。如何把命令行輸入的條件,以避免在輸出的第一個值

在我的代碼的輸出中,還顯示if條件「orgi」和「sort」。我該如何解決這個問題?

命令行輸入:排序 「中距空空導彈」, 「公羊」, 「拉維」

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

程序運行良好,唯一的問題是您正在考慮將第一個參數用作條件檢查作爲排序的輸入。 – BeginnersSake

回答

1

替換此:

for (String s: args) 

有了這個:

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

這應該是'args.length' –

+0

糟糕,謝謝David! –

0

你需要在沒有t的情況下取其餘的參數他第一個項目。最簡潔的方式,我能想到的做到這一點是:

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

你會那麼需要用Collections.sort而不是Arrays.sort理清。爲了得到它返回一個數組,如果你需要,你可以使用:

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

可以使用System.arraycopy進一步使用創建所需數據的單獨副本

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" 

所以使用args_data排序和顯示,除了內部if條件

例如

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

謝謝你的工作 –

+0

@ K.Ji我很高興我可以幫忙,快樂的編碼 –

相關問題