1

大家好,我目前正在创建一个程序,我想在其中交换索引 2 和 4。我已经完成了代码但是我没有收到输出,当我运行程序时我没有收到错误

这是我目前所拥有的:

public class test {
    public static void main(String[] args) {
        int[] intArray = {2,4,6,8,10};
    }

    char[] intArray;
    void swap(int i, int j, int[] arr) {
        int t = arr[2];
        arr[2] = arr[4];
        arr[4] = t;
        System.out.println(intArray);
    }
}
4

3 回答 3

3

你从不打电话swap

public static void main(String[] args) {
   int[] intArray = { 2, 4, 6, 8, 10 };
   new test().swap(1, 2, intArray); // use local array
}

// char[] intArray; not needed

private void swap(int i, int j, int[] arr) {
   int t = arr[i];
   arr[i] = arr[j];
   arr[j] = t;
   System.out.println(Arrays.toString(arr)); // print array passed in
}
于 2013-04-24T00:26:07.590 回答
0

您实际上从未调用过该swap方法,因此请添加到您的main方法中:

new test().swap(-1, -1, intArray);

或者:

test testObj = new test();
testObj.swap(-1, -1, intArray);

将原始数组发送到PrintWriter只会给出默认输出Object.toString。要获取数组元素的值,请使用Arrays.toString. 所以使用:

System.out.println(java.util.Arrays.toString(intArray));
于 2013-04-24T00:29:54.557 回答
0

你的swap方法看起来不错,但它永远不会被调用。看起来它应该从main. 该main方法是静态的,并且您没有(或不需要) 的实例test,因此请包含static在您的swap方法中。swap在您的方法中添加调用main

此外,您不要使用iand jin swap-- 替换2iand 4with j。此外,您永远不会使用char[] intArray,它被声明为实例变量;它可以安全地移除。

于 2013-04-24T00:26:30.383 回答