如何从调用方法中的数组中的方法中放入数组?

时间:2014-11-25 21:41:41

标签: java arrays

我想知道是否(以及如何)将我的方法ArrayReverse中的反转数组放入数组result(其中的??????????)中我的main方法。
代码应该打印出来" Funktioniert"

我的代码:

public class blubb {
    public static void main(String[] args) {
        char[] array = {'t', 'r', 'e', 'i', 'n', 'o', 'i', 't', 'k', 'n', 'u', 'F'};
        char[] result= new char[??????????];

        result=ArrayReversed(array);

        for (int i = 0; i < ergebnis.length; i++) {
            System.out.println(ergebnis[i]);

       }
    }

    public static char[] ArrayReversed(char[] arr) {
        char [] blubb= new char[arr.length];
        for (int i = arr.length-1; i >=0; i--) {
           blubb[i]=arr[i];
        }
        return blubb;

    }
}

4 个答案:

答案 0 :(得分:1)

所有答案都是正确的,您只需将返回结果分配给您的变量:

char[] result = ArrayReversed(array);

您认为它不起作用的原因是因为代码中的这一行:

for (int i = arr.length-1; i >=0; i--) {
    blubb[i] = arr[i];
}

这不会颠倒阵列。您只是将相同的字符从一个数组复制到另一个数组,转换到相同的位置。也许你正在寻找类似的东西:

for(int i=0; i<arr.length; i++) {
    blubb[i] = arr[arr.length-1-i];
}

答案 1 :(得分:0)

为什么不做char[] result = ArrayReversed(array);

另外,你的方法ArrayReversed是错误的。它应该是这样的。

public static char[] ArrayReversed(char[] arr) {
    char [] blubb= new char[arr.length];
    for (int i = arr.length-1; i >=0; i--) {
       blubb[i]=arr[arr.length-1-i];
    }
    return blubb;

}

答案 2 :(得分:0)

基本上,您不需要初始化您的结果&#34;阵列。只需将其设置为ArrayReversed的返回值即可。然后在你的for循环中,你实际上想要使用结果数组并迭代/打印出它的值。

public class blubb {
    public static void main(String[] args) {
        char[] array = {'t', 'r', 'e', 'i', 'n', 'o', 'i', 't', 'k', 'n', 'u', 'F'};
        char[] result;

        result=ArrayReversed(array);

        for (int i = 0; i < result.length; i++) {
            System.out.println(result[i]);

       }
    }

    public static char[] ArrayReversed(char[] arr) {
        char [] blubb= new char[arr.length];
        for (int i = arr.length-1; i >=0; i--) {
           blubb[i]=arr[i];
        }
        return blubb;

    }
}

答案 3 :(得分:0)

您不需要为结果分配新内存。像这样的东西应该工作(注意我对你的代码做了一些更改,因为你的代码中还有一个bug)

public class blubb {
    public static void main(String[] args) {
        char[] array = {'t', 'r', 'e', 'i', 'n', 'o', 'i', 't', 'k', 'n', 'u', 'F'};
        char[] result= ArrayReversed(array);

        System.out.println(result);           
    }

    public static char[] ArrayReversed(char[] arr) {
        char [] blubb= new char[arr.length];
        for (int i = arr.length-1, j = 0; i >=0; i--, j++) {
           blubb[i]=arr[j];
        }
        return blubb;
    }
}