0
public class Reverse {
    public static void main(String[] args) {
        char name[]="prakash".toCharArray();////initialisng array

        ////////swapping string order//////////////
        //////////i.e. reversing array of characters//////////

        for(int i=0;i<=(name.length)/2;i++)
        {
            int j=name.length-i;
            char temp;
            temp=name[i];
            name[i]=name[j];
            name[j]=temp;
        }
    }
}

我收到以下错误:java.lang.ArrayIndexOutOfBoundsException。代码有什么问题?

4

3 回答 3

2

数组索引从零开始:“第一个”元素位于 0,“最后一个”元素位于length-1.

因此,如果j要从最后一个元素往下走,应该是

int j=name.length-1-i;
于 2013-01-17T18:11:04.253 回答
1

尝试

for (int i = 0; i <= (name.Length-1) / 2; i++)
        {
            int j = (name.Length-1) - i;
            char temp;
            temp = name[i];
            name[i] = name[j];
            name[j] = temp;

        }
于 2013-01-17T18:20:11.513 回答
0

你在哪里

  int j=name.length-i;

你应该有

  int j=name.length-i-1;

因为数组从零开始,并且在 position 没有条目name.length

于 2013-01-17T18:10:59.267 回答