9.9 命令行实参
本书前面一直对 main 方法的形参 args 置之不理,现在你已经熟悉了数组和字符串,我们终于可以说说 args 了。如果你不熟悉命令行界面,请阅读 A.3 节。
下面来编写一个程序以找出一系列数字的最大值。这里不从 System.in 读取数字,而是通过命令行实参来传递它们。这个程序的初始版本如下:
public class Max {public static void main(String[] args) {System.out.println(Arrays.toString(args));}}
要运行这个程序,可在命令行中执行如下命令:
java Max
输出表明,args 是个空数组(empty array),即不包含任何元素:
[]
但如果在命令行中提供了额外的值,它们将作为实参传递给 main。例如,如果你像下面这样运行这个程序:
java Max 10 -3 55 0 14
输出如下:
[10, -3, 55, 0, 14]
别忘了,args 的元素为字符串。要想找出最大的数字,必须将这些实参转换为整数。
下面的代码片段结合使用了改进的 for 循环和包装类 Integer 来分析实参并找出最大的值:
int max = Integer.MIN_VALUE;for (String arg : args) {int value = Integer.parseInt(arg);if (value > max) {max = value;}}System.out.println("The max is " + max);
max 的初始值为 int 类型可表示的最小值,因此任何其他 int 值都比它大。如果 args 为空数组,结果将为 MIN_VALUE。
