我需要编写一个接受命令行输入的Java程序,并将这些输入存储到数组中。 for循环应该通过输入并打印出来。
到目前为止我的代码是:
public class HelloName{
public static void main(String args []){
for( int i = 0; i < args.length ; i++) {
System.out.print("Hello " + args[i]);
}
}
我遇到的问题是,当输入多个输入时,它会显示“Hello”两次。
例如,写java HelloName John Doe
,会给我:
Hello John Hello Doe
我只想知道如何将这些名字与Hello John Doe结合起来。
答案 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();
}
在你的代码中,为每个参数打印了hello,因为它在你的循环中。
答案 1 :(得分:1)
这是因为您要在Hello
中附加println()
。删除它,你很高兴。
正在发生的事情是:对于每次迭代,您要打印Hello
,然后打印i
数组的args[]
元素。因此,您会重复Hello
s
在您进入循环之前打印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
答案 2 :(得分:0)
两个单词之间的空格被视为输入参数的分隔符。因此John Doe被视为2个参数,您可以获得输出。
如果您打算只输入一个名称,中间有空格,例如“John Doe”,则需要更改输入参数格式以表示。因此,保持程序相同,将调用更改为:
java HelloName“John Doe”“Adam Smith”
您的输出将是
Hello John Doe
Hello Adam Smith