2014-01-18 87 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