启动 java 程序时出现 ArrayIndexOutOfBoundsException
ArrayIndexOutOfBoundsException when launching a java program
我目前正在做一项作业,但 运行 我的代码似乎有问题。
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 = "";
这是我收到的错误:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at caesar.main(caesar.java:3)
您没有将命令行参数传递给您的程序,也没有检查它们是否已传递。要传递参数,请像
一样启动您的程序
java caesar arg0 arg1
例如:
java caesar somestring 10
要在 NetBeans 8.0.2 IDE 中执行此操作,请打开项目属性,select 运行 项,然后在其中指定参数:
您可能还想提前检查传递的参数数量以输出友好的错误消息。例如:
public static void main(String args[]) {
if(args.length != 2) {
System.err.println("Usage: java caesar <inputString> <shift>");
return;
}
... // the rest of your code
}
解释了如何将参数传递给 Java class。我想解释一下异常 java.lang.ArrayIndexOutOfBoundsException
是什么意思。
ArrayIndexOutOfBoundsException
当您尝试访问数组中不存在的元素时发生。在您的情况下,您正在尝试访问第一个元素,但数组为空,这就是您获得 ArrayIndexOutOfBoundsException
.
的原因
在按索引访问数组元素之前,请确保该数组的大小至少为索引+1。如果索引是 n
大小应该是 n+1
否则你会得到异常。
我目前正在做一项作业,但 运行 我的代码似乎有问题。
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 = "";
这是我收到的错误:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at caesar.main(caesar.java:3)
您没有将命令行参数传递给您的程序,也没有检查它们是否已传递。要传递参数,请像
一样启动您的程序java caesar arg0 arg1
例如:
java caesar somestring 10
要在 NetBeans 8.0.2 IDE 中执行此操作,请打开项目属性,select 运行 项,然后在其中指定参数:
您可能还想提前检查传递的参数数量以输出友好的错误消息。例如:
public static void main(String args[]) {
if(args.length != 2) {
System.err.println("Usage: java caesar <inputString> <shift>");
return;
}
... // the rest of your code
}
java.lang.ArrayIndexOutOfBoundsException
是什么意思。
ArrayIndexOutOfBoundsException
当您尝试访问数组中不存在的元素时发生。在您的情况下,您正在尝试访问第一个元素,但数组为空,这就是您获得 ArrayIndexOutOfBoundsException
.
在按索引访问数组元素之前,请确保该数组的大小至少为索引+1。如果索引是 n
大小应该是 n+1
否则你会得到异常。