2013-01-15 54 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; 
} 
}