【问题标题】:Is there a way to half tab?有没有半标签的方法?
【发布时间】:2012-01-23 03:36:37
【问题描述】:

我正在打印一个乘法表,但它看起来一团糟。

 1 2 3 4 5 6 7 8 9 10 11 12
 2 4 6 8 10 12 14 16 18 20 22 24
 3 6 9 12 15 18 21 24 27 30 33 36
 4 8 12 16 20 24 28 32 36 40 44 48
 5 10 15 20 25 30 35 40 45 50 55 60
 6 12 18 24 30 36 42 48 54 60 66 72
 7 14 21 28 35 42 49 56 63 70 77 84
 8 16 24 32 40 48 56 64 72 80 88 96
 9 18 27 36 45 54 63 72 81 90 99 108
 10 20 30 40 50 60 70 80 90 100 110 120
 11 22 33 44 55 66 77 88 99 110 121 132
 12 24 36 48 60 72 84 96 108 120 132 144

当我使用 Tab 时,数据会溢出到 CMD 中的下一行。 是否有一个半选项卡可以填充数据并使其看起来更有条理,或者至少有一种使它看起来更好的方法。

【问题讨论】:

    标签: java arrays tabs 2d


    【解决方案1】:

    您可以使用System.out.printf 为每个数字分配固定数量的字符。比如

    System.out.printf("%4d", n);
    

    将在四字符字段中右对齐显示 n 的值。

    【讨论】:

    • 完美!我们用双精度和十进制长度进行了类似的操作。我没有意识到同样可以适用于此。
    【解决方案2】:

    我明白你在做什么。我知道你想要达到什么目的。但是,除非您在 1、2、3、4、5 = tab 的增量中使用“空格”,否则您将无法“减半”一个制表符。或者,您可以直接进入您的 cmd 属性并扩大窗口大小。

    【讨论】:

      【解决方案3】:

      您可以检查一下您的号码占用了多少个字符,然后从打印号码后插入的一组填充空格中减去该字符。即

      我使用 8 个空格填充。数字 123 有 3 个字符,因此我 将填充 5 个空格。数字 12 有 2 个字符,所以我会用 6 个空格等填充。

      代码可能类似于:

      int maxPadding = 8;
      int[] listOfNumbers = {1, 11, 111, 2, 22, 222};
      
      for (int number : listOfNumbers){
      
          System.out.print(number);    
      
          int numberOfWhitespaces = maxPadding - int.length;
      
          for(int i = 0; i < numberOfWhitespaces; i++){
              System.out.print(" ");
          }
      
          System.out.println();
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-03-24
        • 1970-01-01
        • 1970-01-01
        • 2018-06-05
        • 2020-10-26
        • 1970-01-01
        • 2011-09-13
        • 2012-07-23
        相关资源
        最近更新 更多