java移动数组覆盖值
我的数组开头填充了一个字符串。然后用户可以输入一个新字符串。我希望我的数组向右移动,比如{a,x,x,x}
应该将a向右移动{x,a,x,x}
,这样新条目就可以向上移动。当我运行代码时,它会将输入的字符串放在数组的第一个位置,但在下一步中,它不会移动输入的字符串,而是打印出一个只填充了预定义字符串的数组。为什么它不包含我输入的字符串
public static void main(String args[]) {
int i;
String n = new String("n");
Scanner sc = new Scanner(System.in);
String a;
String affe [] = new String [5];
Arrays.fill(affe, n);
a = sc.next();
affe[0] = a;
System.out.println(Arrays.toString(affe));
for(i = 0; i<affe.length-1; i++){
affe[i] = affe[i+1];
}
System.out.println(Arrays.toString(affe));
}
# 1 楼答案
试一试
# 2 楼答案
你抄错方向了
更改此行:
到
但您还需要更改循环的顺序,使其从后向前。否则,每个后续迭代都会从开始到结束带来一个值。因此,将循环更改为: