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;

配列はゼロに基づいており、位置にエントリがないためname.lengthです。

于 2013-01-17T18:10:59.267 に答える