有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何将一维数组分解成行?

我想把一维数组分成几行。 数组维数为50。我需要以每行10个元素的形式将数组输出到控制台。(LangJava1.8)谢谢

public void print() {
    for (int i = 0; i < arr.length; i++) {
        if (i<=9) {
            System.out.print(arr[i] + " ");
        }else {
            System.out.print("\r");
        }
    }
}

样本输出

0 1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 
etc....

共 (6) 个答案

  1. # 1 楼答案

    也许你可以写一些像

    if (i % 10 == 0)
        System.out.print("\r");
    }
    System.out.print(arr[i] + " ");
    
  2. # 2 楼答案

    你可以从两个不同的角度来看

    1. 每10个数字,打印一个新行:当索引以9结尾时,您达到10个元素,因此您打印一个新行println()

      public void print() {
          for (int i = 0; i < arr.length; i++) {
              System.out.print(arr[i] + " ");
              if (i % 10 == 9) {
                  System.out.println();
              }
          }
      }
      
    2. 打印足够的行数,每行打印10个元素

      public void print() {
          for (int i = 0; i < arr.length / 10; i++) {
              for (int j = 0; j < 10; j++) {
                  System.out.print(arr[i * 10 + j] + " ");
              }
              System.out.println();
          }
      
      }
      
  3. # 3 楼答案

    必须使用模运算符 https://en.wikipedia.org/wiki/Modulo_operation

    public void print() {
        for (int i = 0; i < arr.length; i++) {
            if (i%10 == 0) {
                System.out.print("\r");
            }else {
                System.out.print(arr[i] + " ");
            }
        }
    }
    
  4. # 4 楼答案

    每行任意数量元素的代码:

    public void print(int elementsPerLine) {
      for (int i = 0; i < arr.length; i++) {
        System.out.print(arr[i]);
        if (i % elementsPerLine == 0 && i > 0) {
             System.out.println();
        } else {
            System.out.print(" ");
        }
      }
    }
    
  5. # 5 楼答案

    使用以下代码

     public static void printResult(int[][] result)
    {
        for(int i=0; i<5; i++)
        {
            for(int j=0; j<10; j++)
            {
                System.out.print(result[i][j] + ", ");
            }
            System.out.println();
        }
    }
    
    public static int[][] modifyArray( int[] singleArray )
    {
        int columns = 10;
        int rows = singleArray.length/10;
        int[][] result = new int[rows][columns];
    
        for(int i=0; i<rows; i++)
        {
            for(int j=0; j<columns; j++)
            {
                result[i][j] = singleArray[columns*i + j];
            }
        }
        return result;
    }
    
    
    public static void main(String[] args)
    {
        int[] singleArray = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50};
    
        int[][] result = modifyArray( singleArray);
        printResult( result );
    
    }
    
  6. # 6 楼答案

    每次将10个项目的切片放入一个新数组,并打印该数组:

    int count = 10;
    int iterations = (arr.length / count) +  ((arr.length % count) > 0 ? 1 : 0);
    for (int i = 1; i <= iterations; i++) {
        int[] slice = new int[count];
        System.arraycopy(arr, (i - 1) * count, slice, 0, i == iterations ? (array.length % count) : count);
        System.out.println(Arrays.toString(slice));
    }
    

    上述代码适用于count的任何值