Android SDK。字符串索引超出绑定异常

时间:2012-04-22 23:49:24

标签: android android-2.2-froyo

我最终让我的应用程序的地图和点(数组)正常工作。快速提问:substring()有一个致命的例外,“stringIndexOutOfBoundException”

一般来说,那指的是什么?

我是否使用substring()

越过字符串的结尾

谢谢,

3 个答案:

答案 0 :(得分:1)

testing.substring(1,2);
     

(我想解析每个字符以找到特定的字符)

我不会使用substring()来获取1个长度的字符串(这只是一个字符),而是使用charAt(int)来获取特定的位置。如果你需要遍历字符串中的所有字符,最好先将整个事物转换为char[](使用toCharArray())并迭代它。

答案 1 :(得分:0)

是的,你通常会越过字符串边界。

Java API甚至告诉你......

  

IndexOutOfBoundsException - 如果beginIndex为负或大于此String对象的长度。

您应该习惯使用API​​。它告诉您方法抛出的异常以及原因。

尝试在尝试子字符串之前打印字符串长度和值。这会帮助你看到问题。

例如......

String testing = "Hello StackOverflow";
System.out.println("Length of testing = " + testing.length);
System.out.println("Value of testing = " + testing);
testing.substring(1,2);

答案 2 :(得分:0)

正如官方文档here中所述:

  

public String substring(int beginIndex)

     

返回一个新字符串,该字符串是此字符串的子字符串。子字符串以指定索引处的字符开头,并延伸到此字符串的末尾。

     

抛出:IndexOutOfBoundsException - 如果beginIndex为负数或   大于此String对象的长度。