我目前正在进行一项任务,但在运行我的代码时似乎存在问题。
public class caesar {
public static void main(String args[]) {
String inputString = args[0];
char inputArray[] = inputString.toCharArray();
int shiftLength = Integer.parseInt(args[1]);
System.out.println("Input: " + inputString);
String outputString = "";
这是我收到的错误:
线程中的异常" main" java.lang.ArrayIndexOutOfBoundsException:0在caesar.main(caesar.java:3)
答案 0 :(得分:4)
您没有将命令行参数传递给您的程序,也不会检查它们是否通过。要传递参数,请启动您的程序,如
java caesar arg0 arg1
例如:
java caesar somestring 10
要在NetBeans 8.0.2 IDE中执行此操作,请打开“项目属性”,选择“运行”项,然后在其中指定参数:
您可能还希望提前检查传递的参数数量,以输出友好的错误消息。例如:
public static void main(String args[]) {
if(args.length != 2) {
System.err.println("Usage: java caesar <inputString> <shift>");
return;
}
... // the rest of your code
}
答案 1 :(得分:0)
Tagir's Answer解释了如何将参数传递给Java类。我想解释异常java.lang.ArrayIndexOutOfBoundsException
的含义。
ArrayIndexOutOfBoundsException
。在您的情况下,您尝试访问第一个元素,但数组为空,这就是您获得ArrayIndexOutOfBoundsException
的原因。
在通过索引访问数组元素之前,请确保该数组的大小至少为index + 1。如果索引为n
,则大小应为n+1
,否则您将获得例外。