【问题标题】:I would like to display numbers in a certain way but it's off-centre我想以某种方式显示数字,但它偏离中心
【发布时间】:2021-06-12 08:08:12
【问题描述】:

我想以行显示数字,其中行数作为用户输入询问,列数始终为 4。一切正常,但它偏离中心。这是我的代码:

public class Practise {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        System.out.println("Enter a number: ");
        int number = scanner.nextInt();
        number = number * 4;
        
        char[] array = new char[number];

        for (int i = 0; i < number; i++) {
            System.out.print("  " + (i)+" :");
            if(array[i]==0) System.out.print("- ");
            if((i+1)%4==0) System.out.println();       
        }
    }
}

因此,如果用户输入 5 行,则输出如下。当它达到两位数时,它会偏离中心。

 0 :-   1 :-   2 :-   3 :- 
  4 :-   5 :-   6 :-   7 :- 
  8 :-   9 :-   10 :-   11 :- 
  12 :-   13 :-   14 :-   15 :- 
  16 :-   17 :-   18 :-   19 :- 

我希望输出如下所示,以便冒号匹配。任何想法如何得到它?我试着玩弄 if i>9 然后做某事的代码,但它只会把它弄得更糟。谢谢!!

   0 :-   1 :-   2 :-   3 :- 
   4 :-   5 :-   6 :-   7 :- 
   8 :-   9 :-  10 :-  11 :- 
  12 :-  13 :-  14 :-  15 :- 
  16 :-  17 :-  18 :-  19 :- 

【问题讨论】:

    标签: java arrays loops for-loop iteration


    【解决方案1】:

    试试这个。

    for (int i = 0; i < number; i++) {
        System.out.printf("%4d :", i);
        if(array[i]==0) System.out.print("- ");
        if((i+1)%4==0) System.out.println();
    }
    

    number = 5 的输出:

       0 :-    1 :-    2 :-    3 :- 
       4 :-    5 :-    6 :-    7 :- 
       8 :-    9 :-   10 :-   11 :- 
      12 :-   13 :-   14 :-   15 :- 
      16 :-   17 :-   18 :-   19 :- 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-23
      • 1970-01-01
      • 1970-01-01
      • 2015-02-04
      • 2012-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多