关于Java:使用for循环添加另一个字符串数组

Add an array of string with another using for loop

本问题已经有最佳答案,请猛点这里访问。

嗨,我使用for循环添加数组中的字符串。下面的代码显示错误,有人能帮我吗?

1
2
3
image = new String[] {"APP","FIELD","KYC"};

image2 = new String[] {"MEMORANDUM","ASSOCIATION"};

现在使用for循环或任何方法,我需要与

1
image = new String[] {"APP","FIELD","KYC","MEMORANDUM","ASSOCIATION"};


是的,这可以不用循环。使用arrayutils.addall(t[],t…)

1
String[] both = ArrayUtils.addAll(image, image2);

这里有一个数组到/从List转换的解决方案。

1
2
3
4
5
6
String[] image = new String[] {"APP","FIELD","KYC"};
String[] image2 = new String[] {"MEMORANDUM","ASSOCIATION"};
List<String> list = new ArrayList<String>(Arrays.asList(image));
list.addAll(Arrays.asList(image2));
String[] result = list.toArray(new String[]{});
System.out.println(Arrays.toString(result));

输出将与您所要求的相同。

正如MENA所建议的,另一种解决方案可以是System.ArrayCopy

1
2
3
4
5
6
7
8
9
String[] image = new String[] {"APP","FIELD","KYC"};
String[] image2 = new String[] {"MEMORANDUM","ASSOCIATION"};
String[] result = new String[image.length + image2.length];

// copies an array from the specified source array
System.arraycopy(image, 0, result, 0, image.length);
System.arraycopy(image2, 0, result, image.length, image2.length);

// Now you can use result for final array

请阅读有关如何在Java中连接两个数组的更多信息?


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public static void main(String[] args) {
    String[] image = new String[] {"APP","FIELD","KYC" };
    String[] image2 = new String[] {"MEMORANDUM","ASSOCIATION" };    

    String[] image3 = new String[image.length+image2.length];      

    for (int i = 0; i <image.length; i++) {
        image3[i] = image[i];

    }

    for (int i = image.length; i>=0 && i < image3.length; i++) {
        image3[i] = image2[i-3];
    }


    //Check if image3 contains the elements you need.
    for(String imageData:image3)
    {
        System.out.println(imageData);
    }

}

这不是一般的解决方案。它只会解决你需要的问题。你能详细说明一下你想做什么吗?


默认情况下,Java没有这样的UTIL。您可以使用System.ArrayCopy

1
2
3
4
5
6
7
8
9
10
11
12
public static void copy(Object[] a, Object... b) {

  int alen = a.length;
  int blen = b.length;

  Object[] c = new Object[alen + blen);

  System.arraycopy(a, 0, c, 0, alen);
  System.arraycopy(b, 0, c, alen, blen);

  return c;
}

您可能希望使用泛型

1
2
3
4
5
6
7
8
9
10
11
12
public static <T> void copy(T[] a, T... b) {

  int alen = a.length;
  int blen = b.length;

  T[] c = (T[]) Array.newInstance(a.getClass(),alen + blen);

  System.arraycopy(a, 0, c, 0, alen);
  System.arraycopy(b, 0, c, alen, blen);

  return c;
}

但是,如果您真的连接到数组,那么所有这些都是必需的,但是在程序流期间,您可以更改大小。重新考虑使用List,它将允许您存储字符串并进行异常扩展。


使用以下代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
    ArrayList<String> image = new ArrayList<String>();
    image.add("APP");
    image.add("FIELD");
    image.add("KYC");

    ArrayList<String> image2 = new ArrayList<String>();
    image2.add("MEMORANDUM");
    image2.add("ASSOCIATION");

    image.addAll(image2);

    for(String i:image){
        System.out.println(i);
    }