打印或者从阵列打印

时间:2014-01-21 23:40:22

标签: java arrays string

我想从两个数组a和b中打印 a [1,2,3,4] b [6,7,8,9]

这样16273849应该是输出。输入也可以是字符串或数字。所有这些活动都发生在基于条件的函数内。

3 个答案:

答案 0 :(得分:2)

for (int i = 0; i < a.length; ++i) {
    System.out.print(a[i]);
    System.out.print(b[i]);
}

答案 1 :(得分:1)

我相信这会奏效:

for(int i = 0, i < a.length + b.length; i++){
    if(i%2 == 0){
        System.out.println(a[i/2]);
    }else{
        System.out.println(b[i/2];
    }
}

答案 2 :(得分:0)

您只需要交错数组:

public void interleave(Object[] a, Object[] b){
  for(int i = 0; i < a.length; i++){
    System.out.print(a[i]);
    System.out.print(b[i]);
  }
}

这假定a和b总是相同的长度。让我们假设它们可以是不同的长度:

public void interleaveVariableLengthArrays(Object[] a, Object[] b){
   int maxLen = Math.max(a.length, b.length);
   for(int i = 0; i < maxLen; i++){
      if(a.length > i){
         System.out.print(a[i]);
      }
      if(b.length > i){
         System.out.print(b[i]);
      }
   }
}

确保使用System.out.print而不是System.out.println,否则您将在每个打印元素后返回回车。

现在让我们假设你有一个可变数量的列表来交错。

public void interleaveVariableLengthAndNumberOfArrays(ArrayList<Object[]> arrays){
    int maxLen = 0;
    for(Object[] array : arrays){
       if(array.length > maxLen){
          maxLen = array.length;
       }
    }
    for(int i = 0; i < maxLen; i++){
       for(Object[] array : arrays){
          if(array.length > i){
             System.out.print(a[i]);
          }
       }
    }
}