为什么这个for循环抛出IndexOutOfBoundsException?

时间:2014-09-18 19:23:12

标签: java

请帮助,我在以下代码

中获得索引超出范围的异常
public static void main (String[] args){

    String st = "harpreet"; 

    for(int i=1; i<=st.length(); i++){

        System.out.print(st.charAt(i));

    }

}

3 个答案:

答案 0 :(得分:2)

数组偏移从0开始,而不是1.如果从1开始,则错过偏移0.此外,进行比较&lt; st.length(),否则你越界了

for(int i=0; i< st.length(); i++){

答案 1 :(得分:0)

将您的代码更改为阅读。

for(int i=0; i< st.length(); i++){

Index Out of Bound意味着您正在尝试引用数组范围内不存在的i。您正在从阵列中脱落,因为数组是0到n-1而不是1到n。

答案 2 :(得分:0)

数组索引从0开始,但你计算字符串start的长度为1,如&#34; harpreet&#34;长度是8但是&#34; h&#34;字母索引是0。

IndexOutOfBoundException是一个运行时异常,当你试图到达不存在的数组时会发生它。

你的代码应该是 -

for(int i=0; i< st.length(); i++)