移阵列的权利 - 功课 [英] Shifting array to the right - homework
本文介绍了移阵列的权利 - 功课的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是我到目前为止,但是当我运行它,我得到一个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屋!
查看全文