Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用命令行args[]设置数组大小?JAVA_Java - Fatal编程技术网

如何使用命令行args[]设置数组大小?JAVA

如何使用命令行args[]设置数组大小?JAVA,java,Java,我遇到的问题是,我的编译器声明10超出范围。但是,如果这是我设置的数组长度,它怎么可能超出范围呢 public class InitArray { public static void main ( String [] args){ int arrayLength = Integer.parseInt(args[10]); //set array length int[] array = new int[arrayLength]; /make array int length

我遇到的问题是,我的编译器声明10超出范围。但是,如果这是我设置的数组长度,它怎么可能超出范围呢

public class InitArray {
   public static void main ( String [] args){

  int arrayLength = Integer.parseInt(args[10]); //set array length
  int[] array = new int[arrayLength]; /make array
  int length = args.length; //the array length to be put in for loop
  System.out.printf("%s%8s\n", "Index", "Value");
  for( int counter = 0; counter < length; counter++){
  System.out.printf("%5d%8d\n", counter, array[counter]);

   }

}
}
公共类初始化数组{
公共静态void main(字符串[]args){
int arrayLength=Integer.parseInt(args[10]);//设置数组长度
int[]数组=新的int[arrayLength];/make数组
int length=args.length;//要放入循环的数组长度
System.out.printf(“%s%8s\n”、“索引”、“值”);
用于(int计数器=0;计数器<长度;计数器++){
System.out.printf(“%5d%8d\n”,计数器,数组[counter]);
}
}
}

如果不向程序传递11个参数,则将出现ArrayIndexOutOfBoundsException。您正在尝试获取args数组的索引10的整数值。

在哪一行失败?在
Integer.parseInt(args[10])

是否
args.length==11

在您的代码中:
-“
length
”是传递给程序的参数数(我想至少11个…)
-“
arraylength
”是第11个参数的值,它的值是多少


似乎您在
for
循环中交换了
length
arraylelength
,您确定编译器在运行应用程序时抛出错误或JVM吗?这不是您的编译器,而是您正在运行的应用程序。您将向正在运行的应用程序传递多少个参数?我确定它小于10,因为您正在查找第11个参数(索引10),但它不在那里。哦,嗨,这是我运行它后返回的结果:线程“main”java.lang.ArrayIndexOutOfBoundsException中的异常异常:10我还应该说,我不确定命令行是如何工作的。我只想把我的数组长度设置为10谢谢你:D我会查一下你是说第11个索引。第一个索引是索引0,所以第十一个索引是索引10。是的,就是这样,integer.parseInt(args[10])。我以为它会进入arrayLength并将我的数组设置为10