我是Java的新手。这只是我试图构建的第二个程序。 我试图在prevoius问题中找到答案,但不能,如果已经回答了,请原谅我。
这是该计划:
public class UseThree {
public static void main(String[] args) {
System.out.print("Hi, ");
System.out.print(args[2]);
System.out.print(", ");
System.out.print(args[1]);
System.out.print(", and ");
System.out.print(args[0]);
System.out.println(".");
}
}
有人可以告诉我为什么我不能这样做?
它显示的问题是:
run UseThree
java.lang.ArrayIndexOutOfBoundsException: 0
at UseThree.main(UseThree.java:7)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:272)
答案 0 :(得分:1)
如果未向程序传递任何命令行参数,则args
数组中不会包含任何内容。在访问数组之前,您可以检查实际收到的参数数量,例如
public static void main(String[] args) {
System.out.println("received " + args.length + " arguments");
}
答案 1 :(得分:1)
当您访问不存在的元素时会发生此异常。对于此程序,您至少需要传递3个命令行参数。 Bcz你用过
ARG [0],则arg [1],则arg [2]
答案 2 :(得分:0)
运行以下代码时,必须为arg []添加字符串值:
java UseThree name1 name2 name3
name1属于arg [0],name2属于arg [1],name3属于arg [2]。
答案 3 :(得分:0)
嗯,你没有得到什么实际的东西只是做一件事打印args的长度,看到长度,并获得想法形式。
这会给你一个想法:)
public class TestingProject {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.print("Hello,HiHow,you");
System.out.println("Hello1"+"Hi1"+"How1"+"you1");
System.out.println(args.length);
}
}
记住什么是@param args然后你会得到你的ans:)