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

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

str=str+str1;

类似:

SignalArrayPerArrayPerWord=SignalArrayPerArrayPerWord   + SignalArrayPerArrayPerWord1;

换句话说:

array=array+array1;

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

【问题讨论】:

    标签: java arrays loops concatenation


    【解决方案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 数组,请查看此 stackoverflow 帖子以找到最佳示例:

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2019-09-11
              • 2017-11-18
              相关资源
              最近更新 更多