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@Saboteurblubb[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;
}
}