Java String array out of existing String array
我有一个Java字符串数组:
1 2 |
我想从我已有的常数中创建第三个常数。目前,我通过重复所有的事情来做到这一点:
1 2 3 |
号
但我真正想要的是:
1 |
你知道如何在Java中做到这一点吗?显然,我不想运行任何循环来改变周围的事情…
连接字符串数组的一种方法:
1 |
编辑说明:正如@malachi提到的,这使用了ApacheCommonsLang库
不使用任何外部libs进行编辑:
您可以使用此通用方法来执行此操作:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | String[] join(String[]... arrays) { // calculate size of target array int size = 0; for (String[] array : arrays) { size += array.length; } // create list of appropriate size java.util.List list = new java.util.ArrayList(size); // add arrays for (String[] array : arrays) { list.addAll(java.util.Arrays.asList(array)); } // create and return final array return list.toArray(new String[size]); } |
号
尽管使用Apache Cuxon Lang-Read是最简单的方法,但是使用Java内置语法有一些方法,这类工作不需要创建单独的实用方法。
1 2 3 4 5 |
(如果语法对其他人来说很奇怪:我正在创建一个匿名类,它是arraylist的子类,并使用初始值设定项调用
可以使用:
1 2 3 4 5 6 7 8 9 | String[] FIELDS_NAMES = {"Albert","Berta","Carl" }; String[] FIELDS_NUMBERS = {"123","456","789" }; String[] FIELDS_ALL = new String[FIELDS_NAMES.length + FIELDS_NUMBERS.length] ; System.arraycopy(FIELDS_NAMES, 0, FIELDS_ALL, 0, FIELDS_NAMES.length); System.arraycopy(FIELDS_NUMBERS, 0, FIELDS_ALL, FIELDS_NAMES.length, FIELDS_NUMBERS.length); for (int j = 0; j < FIELDS_ALL.length; j++) { System.out.println(FIELDS_ALL[j]); } |
。
使用system.arraycopy:
1 2 3 4 5 6 7 8 9 |