0

我正在编写这个程序,我想我已经写了所有东西,但是它会弹出“.class”,我不明白为什么。请帮我。谢谢。

import java.util.*;

public class JoinArrays
{
    public static void main(String[] args)
    {
        int[] x = { 5, 4, 3, 2, 1};
        int[] y = { 8, 7, 6};
        int[] z;
        int   i;

        System.out.println("Original arrays:");
        display(x);
        display(y);

        z = joinArrays(x, y);

        System.out.println("Result of join(x,y).");
        display(z);
   }

   private static void display( int[] x )
   {
       int i;

       System.out.print("Array: ");
       for(i=0; i < x.length; i++)
       {
           if( i < x.length-1 )
                System.out.printf("%3d, ", x[i]);
           else
                System.out.printf("%3d\n", x[i]);
       }
    }

    public static int[] joinArrays(int[] x, int[] y)
    {
        int i;
        return int x[i] + int y[i];
    }

}
4

4 回答 4

2

问题是你的joinArrays方法没有意义。

  1. int x[i] + int y[i];不是完整的表达。 x[i] + y[i]语法上是有效的......

  2. 该变量i未初始化,因此x[i] + y[i]不允许。

  3. 即使x[i] + y[i]被允许,它实际上是添加两个整数......给出一个整数。

基本上,你在这里叫错了树。Java 没有用于连接或连接数组的运算符(或任何其他形式的语法)。您需要创建一个足够大的新数组来容纳 and 的元素,x并将andy的元素复制到新数组中;有关示例,请参见@ dicarlo2 的答案。xy


我是否建议您最好阅读有关 Java 的教程或教科书,而不是尝试通过猜测语法应该是什么来学习 Java...

于 2013-01-15T02:39:39.877 回答
1
public static int[] joinArrays(int[] x, int[] y) {
    int[] arr = new int[x.length + y.length];
    System.arraycopy(x, 0, arr, 0, x.length);
    System.arraycopy(y, 0, arr, x.length, y.length);
    return arr;
}

是你想要的。请参阅@StephenC 的答案,了解您的实施不起作用的原因。

于 2013-01-15T02:39:28.087 回答
0

尝试这个:

package **YOUR PACKAGE NAME**;

import java.util.*;

public class **YOUR CLASS NAME** { public static void main(String[] args)

{

    int[] x = { 5, 4, 3, 2, 1};
    int[] y = { 8, 7, 6};
    int[] z;

    System.out.println("Original arrays:");
    display(x);
    display(y);

    z = joinArrays(x, y);

    System.out.println("Result of join(x,y).");
    display(z);
}

private static void display( int[] x )
{
   System.out.print("Array: ");
   for(int i=0; i < x.length; i++)
   {
       if( i < x.length-1 )
            System.out.printf("%3d, ", x[i]);
       else
            System.out.printf("%3d\n", x[i]);
   }
}

public static int[] joinArrays(int[] x, int[] y)
{
    int [] combination;
    if(x.length < y.length)
        combination = new int[x.length];
    else
        combination = new int[y.length];
    for(int i = 0; i < x.length && i < y.length; i++)
        combination[i] = x[i] + y[i];
    return combination;
}
}
于 2013-01-15T02:45:31.373 回答
0

看看Apache Commons中的ArrayUtils.addAll() ,如此处所建议的那样

于 2013-01-15T02:45:41.613 回答