为什么我的Java程序没有运行?

为什么我的Java程序没有运行?,java,arrays,Java,Arrays,下面的程序交换数组中的两个元素。但它似乎没有运行,但我确信我没有做错任何事情 public class swap { public static String[] swap(int first, int second, String[] A) { String hold = A[first]; A[first] = A[second]; A[second] = hold; return A; } publ

下面的程序交换数组中的两个元素。但它似乎没有运行,但我确信我没有做错任何事情

public class swap {

    public static String[] swap(int first, int second, String[] A) {
        String hold = A[first];
        A[first] = A[second];
        A[second] = hold;
        return A;
    }

    public static void main(String[] args) {
        String[] B = {"Dawn", "Justice", "Of"};
        String[] c = swap.swap(1, 2, B);
        System.out.print(c);
    }
}
1.)需要创建
交换类的对象
,或者因为它是
静态的
不需要创建对象,只需使用
交换(1,2,B)

2.)打印
数组。toString(c)

修改代码

public static String[] swap(int first, int second, String[] A) {
        String hold = A[first];
        A[first] = A[second];
        A[second] = hold;
        return A;

    }

    public static void main(String[] args) {
        String[] B = { "Dawn", "Justice", "Of" };
        String[] c = swap(1, 2, B);
        System.out.print(Arrays.toString(c));

    }
输出

[Dawn, Of, Justice]
导入java.util.array; 公共类交换{

public static String[] swap(int first, int second, String[] A) {
    String hold = A[first];
    A[first] = A[second];
    A[second] = hold;
    return A;
}

public static void main(String[] args) {
    String[] B = {"Dawn", "Justice", "Of"};
    String[] c = swap.swap(1, 2, B);
    System.out.print(Arrays.toString(c));
}

}

是的,但是如果您打印的是数组
toString
(或等效)输出,而不是它的内容,请尝试使用
System.out.print(arrays.toString(c))insteadany运行时出错?错误:[Ljava.lang.String@659e0bfd@3kings输出是
[Ljava.lang.String;@2a139a55
,而不是OP所期望的(我相信他们希望看到
[Dawn,Of,Justice]
)@KenSlade认为有两个,但数组中有3个元素,OP想要交换
正义
,而
第一点是无效的,因为
交换
静态的
,不依赖任何未传递给it@MadProgrammer没错,修改过了