在循环中连接Java数组

Concatenating Java Arrays in a Loop

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

我正在为信号软件编写代码。逻辑摘要如下:用户输入--->string->split at white spaces->arrayPerword->signalarrayPerrayPerword。输出为循环。到目前为止,我的代码运行良好。只有剩下的部分是如何按顺序连接这个循环输出。我正在搜索将这些数组(如字符串连接)连接为:

1
str=str+str1;

类似:

1
SignalArrayPerArrayPerWord=SignalArrayPerArrayPerWord   + SignalArrayPerArrayPerWord1;

换言之:

1
array=array+array1;

最后一步我需要帮助。


您可以将addAll方法与List一起使用。看下面的例子。

1
2
3
4
5
6
7
8
9
Integer[] arr={1,2,3};
Integer[] arr2={4,5,9};

List<Integer> res=new ArrayList<>();

res.addAll(Arrays.asList(arr));
res.addAll(Arrays.asList(arr2));

System.out.println(res);

您可以使用list addall方法..

1
2
3
4
5
6
7
8
List<String> signalArrayPerArrayPerWord = new ArrayList<String>();
List<String> signalArrayPerArrayPerWord1 = new ArrayList<String>();

List<String> concatArray = new ArrayList<String>();

//concat
concatArray.addAll(signalArrayPerArrayPerWord);
concatArray.addAll(signalArrayPerArrayPerWord1);

希望有所帮助


下面将连接相同类型的数组:

1
String[] both = ArrayUtils.addAll(first, second);

类似于这样:

1
ArrayUtils.addAll(["a","b","c"], ["1","2","3"]) = ["a","b","c","1","2","3"]

更多详细信息:文档链接

有多种方式有效地连接Java阵列,也可以检查这个堆栈溢出的帖子来找到最好的例子:

StackOverflow柱链接


1
ArrayUtils.addAll(array1, array2, ...)

您可以从下面的字节数组concatation示例中得到启发。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
   public static byte[] concatByteArrays(byte[]... arrays) {
      // Determine the length of the result array
      int totalLength = 0;
      for (int i = 0; i < arrays.length; i++) {
         totalLength += arrays[i].length;
      }

      // create the result array
      byte[] result = new byte[totalLength];

      // copy the source arrays into the result array
      int currentIndex = 0;
      for (int i = 0; i < arrays.length; i++) {
         System.arraycopy(arrays[i], 0, result, currentIndex, arrays[i].length);
         currentIndex += arrays[i].length;
      }

      return result;
   }

使用StringBuilder sb=new StringBuilder();

在循环中使用sb.append("loop element at index");