日期:2014-05-20  浏览次数:20720 次

请教各位,以下那段代码能显示最后一个命令行参数,并且当不存在命令行参数时,不会抛出异常?
以下是这几个程序的代码:

(a)public static void main(String args[])
{
if(args.length!=0)
System.out.println(args[args.length-1]);
}

(b)public static void main(String args[])
{
try
{
System.out.println(args[args.length]);
}
catch(ArrayIndexOutOfBoundsException e){}
}

(c)public static void main(String args[])
{
int ix=args.lenght;
String last=args[ix];
if(ix!=0)
System.out.println(last);
}

(d)public static void main(String args[])
{
int ix=args.lenght-1;
if(ix>0)
System.out.println(args[ix]);
}

(e)public static void main(String args[])
{
try
{
System.out.pritnln(args[args.lenght-1]);
}
catch(NullPointerException e){}
}

能再麻烦下各位高手详细的告诉下,每个都会出现什么结果,又是什么原因呢,谢谢了。


------解决方案--------------------
public static void main(String args[]) 

===========================
main函数的参数args是一个一维的字符串数组,这个参数比较特殊(估且这样说吧)。因为这个参数中的各个值是在程序中使用,程序外传入的(你每次右击源码将要编译执行时,下面还有个调试,再下面有个“运行”选项,打开“运行”/"自变量",在"自变量"中输入参数即可,每个参数以空格区分开即可)。
java中嘛,对数组也是下标从0开始。

所以,说了这么多,你应该能明白了吧?