反转一个字符数组

时间:2013-01-17 18:06:41

标签: string reverse

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。代码有什么问题?

3 个答案:

答案 0 :(得分:2)

数组索引从零开始:“first”元素为0,“last”元素为length-1

因此,如果您希望j从最后一个元素开始,那么它应该是

int j=name.length-1-i;

答案 1 :(得分: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;

        }

答案 2 :(得分:0)

你在哪里

  int j=name.length-i;
你应该

  int j=name.length-i-1;

因为数组基于零,并且在name.length位置没有条目。