gpt4 book ai didi

java - 在java中反转数组并将其分配给新数组

转载 作者:行者123 更新时间:2023-11-30 03:24:18 26 4
gpt4 key购买 nike

我只想反转当前现有数组的顺序,并将反转的顺序分配给新数组,同时保持原始数组不变(而不是反转)。

我试图让我的新数组 (b) 发生相反的情况。但是,当我在反向算法之后打印原始数组时,它会以新的相反顺序打印。我希望这个数组保持原样。

这是我的代码,其中有两个数组:n 和 b,其中 n 是我的原始数组,b 是我的反转数组。

public void setUpArray(){
user = input.next();
char [] n = user.toCharArray();
char [] b = n;
boolean ok;

System.out.println(Arrays.toString(n));


for(int i = 0; i < n.length / 2; i++) // reverses the array
{
b[i] = n[i];
char temp = b[i];
b[i] = b[b.length - i - 1];
b[b.length - i - 1] = temp;
}
System.out.println(Arrays.toString(b));
System.out.println(Arrays.toString(n)); //this prints in reverse for some reason

目前,如果我在扫描仪中输入“hi”,这就是我的输出

[h, i] <-- original array (n)
[i, h] <-- reversed array (b)
[i, h] <-- orignal array (n) prints in reverse, why???

最佳答案

当您进行此作业时

char [] b = n;

这意味着 nb 变量都引用了一个数组对象。创建一个新数组以使原始数组保持不变:

char [] b = new char[n.length];

如果您这样做,用于反转数组的代码也应该更改。您应该从 n 而不是 b 获取输入值。您根本不需要 temp 变量。

for(int i = 0; i <= n.length / 2; i++) // reverses the array
{
b[i] = n[b.length - i - 1];
b[b.length - i - 1] = n[i];
}

关于java - 在java中反转数组并将其分配给新数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30636696/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com