0

我终于有了适用于我的应用程序的地图和点(数组)。快速提问:我有一个致命的异常substring(),一个“stringIndexOutOfBoundException”

一般来说,这是指什么?

我使用 ? 越过字符串的末尾substring()

谢谢,

4

3 回答 3

1
testing.substring(1,2);

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

我不会substring()用于抓取长度为 1 的字符串(这只是一个字符),而是charAt(int)用于特定位置。如果您需要遍历字符串中的所有字符,最好将整个内容转换为char[]第一个(使用toCharArray())并对其进行迭代。

于 2012-04-23T00:38:09.693 回答
0

就像这里的官方文档中所述:

公共字符串子字符串(int beginIndex)

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

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

于 2012-04-22T23:55:27.443 回答
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);
于 2012-04-22T23:51:12.750 回答