java - 无法反转数组中的整数,中途失败

标签 java arrays int reverse

我想反转数组“s”中的整数。我不明白为什么输出会自行反转。代码链接 http://ideone.com/REuGYt

class Ideone
{
    public static void main (String[] args) throws java.lang.Exception
    {
        int[] s = {4,5,6,7,8};
        for (int x = 0; x < s.length; x++) {
            s[x] = s[(s.length - x) -1];
            System.out.println(s[x]);
        }
    }
}

//outputs 
8
7
6
7
8

最佳答案

您只是将右侧值复制到左侧值;您不会从两侧切换值。不要只是将右侧复制到左侧,而是交换它们的值。替换

s[x] = s[(s.length - x) -1];

int temp = s[x];
s[x] = s[(s.length - x) -1];
s[(s.length - x) -1] = temp;

此外,您需要在 x 到达 s.length/2 之前,在数组中途停止 for 循环,否则下半部分会将值交换回其原始位置。

关于java - 无法反转数组中的整数,中途失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24790437/

相关文章:

java - 检查 ArrayList 中的某个对象是否满足某些条件

java - Primefaces selectOneMenu 过滤器不起作用

java - Android - 使用 ant 创建更改配置值的构建配置

javascript - 为什么我的数组未定义

javascript - 将 JavaScript ES6 函数转换为 ES3

php - 从数组中的特定行获取数据

c - 按位运算中的类型转换让我在 C 中感到困惑

c++ - 如何在 C++ 中打印 double

c++ - int *p 和 int* p 有什么区别

java - 将 Java 对象中的数据写入 XML 文件