我知道这是一个简单的问题,但它会产生一些不寻常的问题。
public static void main(String [] st) {
System.out.println("nn Arg: :"+st.length);
for(int i=0;i<st.length;i++) {
System.out.println("ARGUMENTS: "+st[i]);
}
}
这个程序只输出"Arg::0"作为输出
我也试过
String s= st[0];
System.out.println("n String: "+s);
但是会抛出Exception。
如果启动程序时没有传递任何参数,则st
将为空。因此,尝试引用数组中的第一项将抛出NullPointerException
。
参见有关命令行参数和数组的教程。
与C和其他一些语言的一个特别的区别是程序名称本身不是参数之一,所以当C main
函数总是至少有一个参数时,Java main
没有。
我假设它是在抱怨你有一个索引超出界限的异常,这意味着你试图访问索引0
的字符串,而没有这样的字符串。
有两种方法可以解决这个问题,一种是仔细查看异常(假设您知道它的含义),另一种是在调试器中逐步执行代码,这将使问题更清楚。