移阵列的权利 - 功课 [英] Shifting array to the right - homework

查看:102
本文介绍了移阵列的权利 - 功课的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我到目前为止,但是当我运行它,我得到一个Java不匹配错误。
这是我的数组:

 的char []字母= {'A​​','B','C','D','E','F','G','H', '我','J'};
/ ******************* *******************************
    shiftRight()将数组中的一个插槽的内容移动到右侧
************************************************** ************ /
公共静态无效shiftRight(的char []字母)
{
    焦炭最后=字母[letters.length-1]; //保存了第一个元素    //右移
    对于(INT指数= letters.length-1;索引> = 0; index--)
        信件[索引+ 1] =字母[指数]    //最后一个元素包装成第一个插槽
    信件[0] =最后;
    System.out.print(\\ nshifted阵:);
}


解决方案

您可以这样做:

 公共静态无效shiftRight(的char []字母)
    {        焦炭最后=字母[letters.length-1]; //保存了第一个元素        //右移
        对于(INT指数= letters.length-2;索引> = 0; index--)
            信件[索引+ 1] =字母[指数]        //最后一个元素包装成第一个插槽
        信件[0] =最后;
        System.out.print(\\ nshifted数组:+ Arrays.toString(字母));    }

我只修改了: letters.length-1 letters.length-2 和印刷阵列。

另外,更简单的方法是使用 System.arraycopy 这样的:

 最后=字母[letters.length-1];
System.arraycopy(字母,0,字母,1,letters.length-1);
信件[0] =最后;

要打印您还可以使用数组:

  System.out.print({);
的for(int i = 0; I< letters.length-1;我++)
    System.out.print('+字母[I] +,);
的System.out.println('+字母[letters.length-1] +'});

This is what I have so far, but when I run it, I get a Java mismatch error. This is my array:

char[] letters = {'A', 'B' , 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'};


/********************************************************************************
    shiftRight() will move the contents of the array one slot to the right
********************************************************************************/
public static void shiftRight( char [] letters )
{
    char last = letters[letters.length-1];          // save off first element

    // shift right
    for( int index =letters.length-1; index >= 0 ; index-- )
        letters[index+1] = letters [index];

    // wrap last element into first slot
    letters[0] = last;
    System.out.print("\nshifted Array: " );
}

解决方案

You can do something like:

 public static void shiftRight( char [] letters )
    {

        char last = letters[letters.length-1];          // save off first element

        // shift right
        for( int index =letters.length-2; index >= 0 ; index-- )
            letters[index+1] = letters [index];

        // wrap last element into first slot
        letters[0] = last;
        System.out.print("\nshifted Array: " + Arrays.toString(letters) );

    }

I only modified your: letters.length-1 into letters.length-2 and printed the array.

Another, easier approach is to use, System.arraycopy like:

last = letters[letters.length-1];
System.arraycopy(letters, 0, letters, 1, letters.length-1 );
letters[0] = last;

To print the array you can also use:

System.out.print("{");
for (int i=0;i<letters.length-1;i++)
    System.out.print("'"+letters[i]+",");
System.out.println("'"+letters[letters.length-1]+"'}");

这篇关于移阵列的权利 - 功课的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆