java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:

时间:2016-05-26 10:56:44

标签: java

我知道simillar问题已被提出,但他们都有同样的问题:在循环内部他们有类似的东西

gem install pry

我用过

i <= aString.lenth()

我仍然收到错误。我也试过

i < phrase.length();

任何想法有什么不对?

感谢。

i < phrase.length()-1;

2 个答案:

答案 0 :(得分:6)

致电StringBuilder.setCharAt

replaced.setCharAt(currChar, ch);

第一个参数应该是i,而不是currChar

replaced.setCharAt(i, ch);

您应该传递要设置字符的索引而不是字符本身

currChar的{​​{1}}值可能高于int的长度,导致异常,但如果不是,则会得到奇怪的输出没有异常,这更糟糕。

答案 1 :(得分:2)

以下代码是 AbstractStringBuilder 类的 setCharAt方法

{{1}}

如果您将字符'a'传递给setCharAt方法,它将从字符隐式转换为 int value 97 at index 。 它使 java.lang.StringIndexOutOfBoundsException 。谢谢:))