我知道这是一个简单的问题,但它会产生一些不寻常的问题。
public static void main(String [] st) {
System.out.println("\n\n 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);
但它会抛出异常。 所以请帮帮我。
答案 0 :(得分:1)
如果您在启动时未向程序传递任何参数,则st
将为空。因此,尝试引用数组中的第一项将抛出NullPointerException
。
答案 1 :(得分:1)
请参阅command line args和arrays上的教程。
与C和其他一些语言的一个特别区别是程序名本身不是参数之一,所以虽然C main
函数总是至少有一个参数,但Java main
会不
答案 2 :(得分:0)
我认为它抱怨你有一个索引超出范围的异常,这意味着当没有这样的字符串时你试图访问索引0
的字符串。
你能解决这个问题的两种方法是仔细查看异常(假设你知道它意味着什么)或者在调试器中单步调试代码,这样可以使这一点更加清晰。