将两个阵列组合在一起?
问题描述:
我正在编写这个程序,我想我已经写了所有的东西,但是它弹出'.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];
}
}
答
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的答案是为什么你的实现不起作用。
答
问题是您的joinArrays
方法没有意义。
int x[i] + int y[i];
作为一个表达式并不完整。x[i] + y[i]
将语法有效...变量
i
没有初始化,x[i] + y[i]
不会被允许。即使
x[i] + y[i]
被允许,它实际上是增加了两个整数...来给出一个整数。
基本上,你在这里吠叫错误的树。 Java没有用于连接或连接数组的运算符(或任何其他形式的语法)。您需要创建一个足以容纳x
和y
的元素并将x
和y
的元素复制到新阵列的新阵列;例如,请参阅@ dicarlo2的答案。
我可以建议你会做更好的阅读教程或Java的教科书,而不是试图通过猜测语法应该是什么学习Java ...
答
试试这个:
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;
}
}