2014-01-18 84 views
0

我需要編寫一個Java程序,它接受來自命令行的輸入並將這些輸入存儲到數組中。 for循環應該通過輸入並打印出來。從Java命令行接收輸入

到目前爲止我的代碼是:

public class HelloName{  
    public static void main(String args []){  
     for(int i = 0; i < args.length ; i++) {  
       System.out.print("Hello " + args[i]);    
     } 
} 

我遇到的問題是,在輸入多個輸入時,它會顯示「你好」的兩倍。

例如,寫java HelloName John Doe,會給我:

Hello John Hello Doe 

我只是想知道如何獲得的名稱結合起來,John Doe:您好。

+5

那是因爲您打印「你好」內你的循環 – kmera

+0

想一想爲什麼每次打印每一個參數時,你都會猜對 –

回答

3

試試這個:

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

在你的代碼中你打印了每個參數,因爲它在裏面你的循環。

1

這是因爲您在println()中追加Hello。刪除那個,你很好走。

發生了什麼事是這樣的:對於每次迭代,您正在打印Hello,然後是args[]陣列的i th元素。因此,你得到重複Hello小號

打印Hello你進入循環,然後在args[]

public class HelloName{ 

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

       System.out.print(args[i] + " "); // see the difference ? 

     } 
    } 

迭代您可以IDEOne運行這裏的修正程序之前:http://ideone.com/oriBtP

0

將這兩個單詞之間的空格視爲輸入參數的分隔符。所以John Doe被視爲2個參數,你會得到你的輸出結果。

如果您的意圖是隻輸入一個名稱,並在其間插入空格,例如「John Doe」,則需要更改輸入參數格式以表示。因此保持你的程序一樣,調用改成這樣:

的Java HelloName「李四」,「亞當·斯密」

你的輸出將是

Hello John Doe 
Hello Adam Smith