Java 中的命令行参数允许我们在程序执行时传递参数。
顾名思义,参数是通过命令行传递的。
示例:命令行参数
class Main {
public static void main(String[] args) {
System.out.println("Command-Line arguments are");
// loop through all arguments
for(String str: args) {
System.out.println(str);
}
}
}
让我们尝试通过命令行运行此程序。
1. 编译代码
javac Main.java
2. 运行代码
java Main
现在,如果我们想在运行程序时传递一些参数,可以在类名后传递参数。例如:
java Main apple ball cat
这里 apple、ball 和 cat 是通过命令行传递给程序的参数。现在,我们将得到以下输出。
Command-Line arguments are Apple Ball Cat
在上面的程序中,main()
方法包含一个名为 args 的字符串 数组 作为其参数。
public static void main(String[] args) {...}
String
数组存储了通过命令行传递的所有参数。
注意:参数始终存储为 字符串,并且始终用空格分隔。
传递数字命令行参数
每个 Java 程序的 main()
方法只接受字符串参数。因此,无法通过命令行传递数字参数。
但是,我们之后可以转换字符串参数为数字值。
示例:数字命令行参数
class Main {
public static void main(String[] args) {
for(String str: args) {
// convert into integer type
int argument = Integer.parseInt(str);
System.out.println("Argument in integer form: " + argument);
}
}
}
让我们尝试通过命令行运行该程序。
// compile the code
javac Main.java
// run the code
java Main 11 23
这里 11 和 23 是命令行参数。现在,我们将得到以下输出。
Arguments in integer form 11 23
在上面的示例中,请注意这一行
int argument = Intege.parseInt(str);
在这里,Integer
类的 parseInt()
方法将字符串参数转换为整数。
类似地,我们可以使用 parseDouble()
和 parseFloat()
方法将字符串分别转换为 double
和 float
。
注意:如果参数无法转换为指定的数字值,则会发生名为 NumberFormatException
的异常。