给出两个字符串数组a [] = {a1,a2,a3}和b [] = {b1,b2}。要通过用户输入插入的元素。 然后形成第三个串数c [],使得c [] = {a1,b1,a2,b2,a3}; 使用for循环解决的问题(不使用arraycopy) 我试过这个但是没有用
public class ArrConcat {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String[]a=new String[3];
String[]b=new String[2];
System.out.println("Enter 1st array");
for(int i=0;i<a.length;i++){
a[i]=sc.nextLine();
}
System.out.println("Enter 2nd array");
for(int i=0;i<b.length;i++){
b[i]=sc.nextLine();
}
String[]c=new String[a.length+b.length];
for(int j=0;j<c.length;j++){
c[j]=a[j];
c[j+1]=b[j];
System.out.println(c[j]);
}}
答案 0 :(得分:0)
我正在使用你的逻辑并且它创建了相同的输出我为你找到了一些东西。
push
这样做你可以循环C直到它完全满了,你所要做的就是检查你是否已经移动了所有这一个。 na和nb基本上计算已经移动了多少个数组a和数组b。
你的和我的原始代码不起作用,因为每次我只增加1所以当你添加到c [i]和c [i + 1]时,下一次迭代将覆盖c [i + 1]之前这就是我们只获得第一个数组输出的原因。
答案 1 :(得分:0)
你可以这样做 -
String[] a = new String[]{"a1","a2","a3"};
String[] b = new String[]{"b1","b2"};
String[]c=new String[a.length+b.length];
int i =0;
for(int j=0;j<b.length;j++){//Because b is shorter array.
c[i++]=a[j];
c[i++]=b[j];
}
for(int k=b.length;k<a.length;k++){// Append remaining elements present in larger array.
c[i++]=a[k];
}
for(String r : c){
System.out.println(r);
}