2013-01-15 160 views
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]; 
    } 

} 

回答

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的答案是爲什麼你的實現不起作用。

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沒有用於連接或連接數組的運算符(或任何其他形式的語法)。您需要創建一個足以容納xy的元素並將xy的元素複製到新陣列的新陣列;例如,請參閱@ dicarlo2的答案。


我可以建議你會做更好的閱讀教程或Java的教科書,而不是試圖通過猜測語法應該是什麼學習Java ...

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