运行此代码时出现异常java.lang.ArrayIndexOutOfBoundsException?

时间:2014-05-23 06:52:58

标签: java

我在将list [array.length]引用传递给s时遇到异常java.lang.ArrayIndexOutOfBoundsException。

import java.io.*;

public class Test
{
  public void demo(String [] list)
   {
   try
   {    
    String s=list[list.length];// error
   }
   catch(ArrayIndexOutOfBoundsException  e)
   {
  System.out.println("The exception is"+e);
   }
   finally
   {
      System.out.println("Finally here.");
   }
}
 public static void main(String [] args)
 {
   Test t=new Test();
   String [] list={"one","two"};
   t.demo(list);
   System.out.println("Done!");
 }
}

6 个答案:

答案 0 :(得分:3)

如果你有一个长度为5的数组,你将在索引0-4上有元素,并且你正在尝试访问第5个元素。

如果您想访问最后一个元素:

String s = list[list.length - 1];

答案 1 :(得分:1)

String s=list[list.length];

数组从0索引,因此最后一项是list.length-1

答案 2 :(得分:1)

大多数编程语言中的索引从零开始。因此,您可以使用范围[0, length - 1]中的索引。但是,在行

String s = list[list.length];

您使用的索引无效。应该是(最多):

String s = list[list.length - 1];

答案 3 :(得分:1)

Java数组中的

基于零。所以你必须写:

String s=list[list.length-1];

list.length为您提供数组中元素的数量(2),但数组中的最后一个元素位于索引1上

答案 4 :(得分:1)

由于该行,您获得了Exception

String s=list[list.length];

永远记住:

Last-index_of_an_Array  = Array-length - 1 // because array index starts from 0

所以,试试:

String s=list[list.length - 1];

答案 5 :(得分:1)

 String [] list={"one","two"};    
 list[0] value is "one";
 list[1] value is "two";
 list.length value is 2
 String s=list[list.length];// error  

因为

 String s=list[2];// error    
java.lang.ArrayIndexOutOfBoundsException