Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将方法中的数组放入调用方法中的数组中?_Java_Arrays - Fatal编程技术网

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

Java 如何将方法中的数组放入调用方法中的数组中?,java,arrays,Java,Arrays,我想知道是否(以及如何)可以将方法ArrayReverse中的反向数组放入方法中的数组结果(其中的位置)。 代码应打印出“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[] res

我想知道是否(以及如何)可以将方法
ArrayReverse
中的反向数组放入
方法
中的数组
结果
(其中的位置)。
代码应打印出“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;

    }
}
公共类blubb{
公共静态void main(字符串[]args){
char[]数组={t',r',e',i',n',o',i',t',k',n',u',F'};
字符[]结果=新字符[];
结果=阵列反转(阵列);
for(int i=0;i=0;i--){
blubb[i]=arr[i];
}
返回blubb;
}
}

为什么不直接做
char[]result=ArrayReversed(数组)

此外,您的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;

}

基本上,您不需要初始化“结果”数组。只需将其设置为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;

    }
}
公共类blubb{
公共静态void main(字符串[]args){
char[]数组={t',r',e',i',n',o',i',t',k',n',u',F'};
char[]结果;
结果=阵列反转(阵列);
for(int i=0;i=0;i--){
blubb[i]=arr[i];
}
返回blubb;
}
}

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

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];
}

for(int i=0;i您不需要为结果分配新内存。类似的方法应该可以工作(请注意,由于您的代码中还有一个bug,我对您的代码做了一些更改)


你的意思是,你想重新分配
结果
变量?@kolossus是的,我想要:)P.S.
psvm
不是通常用来指
公共静态void main
的缩写。。。请不要用它,它不起作用。它不会输出“Funktioniert”,而是输出数组“treinoitknuf”……这是因为你的反向数组是错误的heh@Saboteur
blubb[i]=arr[i]
只是复制数组,因为您要将每个字符复制到相同的位置。
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;
    }
}