在循环中连接 Java 数组 [重复]

Posted

技术标签:

【中文标题】在循环中连接 Java 数组 [重复]【英文标题】:Concatenating Java Arrays in a Loop [duplicate] 【发布时间】:2014-07-14 19:33:06 【问题描述】:

我正在为 Signals Software 编写代码。逻辑总结如下:用户输入-->字符串-->空格分割-->ArrayPerWord-->SignalArrayPerArrayPerWord。输出是循环的。到目前为止,我的代码运行良好。只剩下剩下的部分是如何按顺序加入这个循环输出。我正在寻找将这些数组连接起来,如字符串连接:

str=str+str1;

类似:

SignalArrayPerArrayPerWord=SignalArrayPerArrayPerWord   + SignalArrayPerArrayPerWord1;

换句话说:

array=array+array1;

在这最后一步我需要帮助。

【问题讨论】:

【参考方案1】:

您可以从以下字节数组串联示例中获得启发。

   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;
   

【讨论】:

【参考方案2】:
ArrayUtils.addAll(array1, array2, ...)

【讨论】:

【参考方案3】:

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

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

类似这样的:

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

更多详情:doc link

有多种方法可以有效地连接 java 数组,请查看此 *** 帖子以找到最佳示例:

*** post link

【讨论】:

我可以得到结果为 :"a", "b", "c", "1", "2", "3" 还是我必须手动得到它? 如果你将结果存储在一个数组中并打印出来,那么你就会得到你想要的。【参考方案4】:

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

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);

【讨论】:

【参考方案5】:

你可以使用 List addAll 方法..

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);

希望有帮助

【讨论】:

【参考方案6】:

使用 StringBuilder sb = new StringBuilder();

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

【讨论】:

以上是关于在循环中连接 Java 数组 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

带有两个数组的Java foreach循环[重复]

java 中如何 找出两个集合中的不重复的元素

For循环用于搜索数组,Swift [重复]

增强的 for 循环不适用于将值分配给数组(Java)[重复]

Java - 在字符串数组中搜索字符串[重复]

循环没有捕获重复项并在 Android(Java) 中删除它们