【发布时间】:2016-02-04 11:03:39
【问题描述】:
所以我需要创建一个新数组来交换现有数组的第一个和最后一个值。这是我到目前为止所拥有的:
import java.util.Scanner;
import java.util.Arrays;
public class P9_ArrayManipulate
{ public static void main (String[] args)
{ Scanner in = new Scanner(System.in);
System.out.println("Please enter seven numbers for an Array.");
int []array = new int[7];
int total = 0;
for (int i = 0; i < 7;i++){
array[i] = in.nextInt();
}
System.out.println("Your reversed array is "+reverseArray(array));
System.out.println("Your swapped array is "+swapArray(array));
System.out.println("Your array without even numbers is "+evenArray(array));
System.out.println("The program has finished calling array methods.");
}
public static int []reverseArray(int []array)
{ int[] reversed = new int[array.length];
int i;
for(i=0; i < array.length; i++)
{
reversed[i] = array[(array.length - i -1)];
}
return reversed;
}
public static int []swapArray (int []array)
{
array[0] += array[array.length-1];
array[array.length-1] = array[0] - array[array.length-1];
array[0] -= array[array.length-1];
return array;
}
public static int []evenArray(int []array)
{ for (int i = 0; i < array.length;i++){
if (array[i]%2 !=0)
{array[i] = 0;}
i++;}
return array;
}
}
一切都正确编译(据我所知),但我遇到了一个奇怪的运行时错误。七次输入后,我得到这个作为我的输出:
Your reversed array is [I@b4d079
Your swapped array is [I@3644d1
Your array without even numbers is [I@3644d1
The program has finished calling array methods.
【问题讨论】:
-
错误是什么?是消息的奇怪格式吗?这是因为数组不会自动转换为字符串。您可能想尝试 System.out.println("Your reversed array is "+Arrays.toString(reverseArray(array)));
-
啊,明白了。非常感谢。