我测试了在我的应用程序中添加300个联系人的过程,并且按期望做得很好,但是在银河系中它崩溃了,并且没有显示我的300个联系人,并且崩溃后他们删除了这些联系人。

有人看到吗?

最佳答案

简单的答案:

StringIndexOutOfBoundsException

由String方法抛出,以指示索引为负数或大于字符串的大小。对于某些方法,例如charAt方法,当索引等于字符串的大小时,也会引发此异常。

也许您正在使用charAt()方法访问您的字符串?无论哪种方式,访问字符串中不存在的位置都会返回一个像您一样的数组。

    String myString;
    myString = "Hello";
    System.out.println(charAt(10)); will cause a stringsIndexOutOfBoundsException


详细答案:

解释了在抛出任何indexoutofboundsexception之前会发生什么。我已经使用数组作为基本示例。

这意味着您要遍历300个联系人。 Ut已到达数组的末尾,并尝试访问下一个为空的值。这将返回indexoutofboundsexception。

在遍历数组时,您需要了解元素one(数组中的第一个元素)的定义为0。因为java的索引从0开始。因此,访问第一个元素时您会这样做
因此,如果要访问数组的最后一个元素,请执行myArray[0];之类的操作

因此,如果您有10个元素,则将有一个类似于以下内容的数组:

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Note there is no 10 as it starts from 0.


因此,当您尝试访问元素10时,您将像这样进行操作。 myArray [myArray.size-1]

myArray.size将返回等于10的数组大小,然后我们减去1得到9的值,然后我们可以通过将值9放入第十个元素。

这是在运行时无需应用程序即可捕获任何错误的巧妙方法。相反,它将为用户生成一条消息以通知他们该错误。

PK

10-07 19:42
查看更多