我已经花了很多时间来解决数组任务,但在我看来,我被卡住了。任务是创建一个程序,打印给定命令行参数的数量并列出它们。
You gave 2 command line parameters.
Below are the given parameters:
1. parameter: 3455
2. parameter: John_Smith
我的程序从错误的索引开始+我不确定给定的任务。如果尚未初始化,程序如何知道要使用多少参数?或者我只是完全失去了锻炼?
这就是我所做的:
import java.util.Scanner;
public class ex_01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner reader = new Scanner(System.in);
int param = reader.nextInt();
String[] matrix = new String[param];
for (int i = 0; i < matrix.length; i++) {
matrix[i] = reader.nextLine();// This is the part where my loop fails
}
System.out.println("You gave " + matrix.length
+ " command line parameters.\nBelow are the given parameters:");
for (int i = 0; i < matrix.length; i++) {
System.out.println(i + 1 + " parameter: " + matrix[i]);
}
}
}
我自己的输出:
3 //This is the number of how many parameters the user wants to input
2 // Where is the third one?
omg //
You gave 3 command line parameters.
Below are the given parameters:
1 parameter:
2 parameter: 2
3 parameter: omg
编辑:
我知道了!我做的!!经过更多谷歌搜索,我发现了这个:
if (args.length == 0) {
System.out.println("no arguments were given.");
} else {
for (String a : args) {
}
}
然后我只修改了程序和Voilà编译的程序。这是整个计划:
import java.util.Scanner;
public class Echo {
public static void main(String[] args) {
if (args.length == 0) {
System.out.println("no arguments were given.");
} else {
for (String a : args) {
}
}
System.out.println("You gave " + args.length
+ " command line parameters.\nBelow are the given parameters:");
for (int i = 0; i < args.length; i++) {
System.out.println(i + 1 + ". parameter: " + args[i]);
}
}
}
我要感谢所有回答此问题的人,真的需要帮助! :)
答案 0 :(得分:2)
命令行参数不是程序用Scanner
等读取的文本,它们是args
数组中指定的字符串,是main的参数。看起来您需要输出该数组的内容,而不是读取输入并输出它。
答案 1 :(得分:2)
我认为你混淆了命令行参数的含义。命令行参数是程序运行时传递给main
方法的参数,而System.in
在程序运行时在命令行捕获用户输入。
命令行参数传递给main
参数中的args
方法,例如:
java MyClass one two three
将数组["one", "two", "three"]
作为args
参数传递给main
方法。
然后,您只需使用args
数组打印所需的数据信息。