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]実際には 2 つの整数を足して ... 整数を与えています。

基本的に、ここで間違ったツリーを吠えています。Java には、配列を結合または連結するための演算子 (またはその他の形式の構文) がありません。xandの要素を保持するのに十分な大きさの新しい配列を作成し、 and の要素を新しい配列にコピーする必要がありyます。例については、@ 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

here で提案されているように、Apache Commons のArrayUtils.addAll()を見てください。

于 2013-01-15T02:45:41.613 に答える