【问题标题】:Print array results in a figure eight pattern打印数组结果为八字形图案
【发布时间】:2014-03-03 12:40:26
【问题描述】:

我有一个数组的结果,我想以图 8 的形式打印它们,下面是执行此操作的代码:

tempString2 = "\t" + trainTrack[5]+ "\n" + trainTrack[4] + "\t\t"
+ trainTrack[6] + "\n"+ trainTrack[3] + "\t\t" + trainTrack[7]+ "\n"
+ trainTrack[2] + "\t\t" + trainTrack[8]  + "\n"+ trainTrack[1]  + "\t\t"
+ trainTrack[9]  + "\n\t" + trainTrack[0]  + "\n"+ trainTrack[10] + "\t\t"
+ trainTrack[18] + "\n" + trainTrack[11] + "\t\t" + trainTrack[17] + "\n"
+ trainTrack[12] + "\t\t" + trainTrack[16] + "\n"+ trainTrack[13] + "\t\t"
+ trainTrack[15] + "\n\t" + trainTrack[14];

以下是我输出字符串时显示的内容:

      [..]
[..]        [..]
[..]        [..]
[..]        [..]
[..]        [..]
      [..]
[..]        [..]
[..]        [..]
[..]        [..]
[..]        [..]
      [..]

但是有没有办法让它看起来更漂亮,边缘更圆,所以它实际上看起来像一个八?

【问题讨论】:

  • 我该怎么做,我不知道它们是什么!可以举个例子吗
  • 您想要使用其他符号的建议、以文本形式呈现八个的其他方式还是以图形方式显示它的解决方案?
  • 好吧,如果你能告诉我一个如何做到这一点的例子,我将能够自己创建模式,但我只需要关于此事的指导
  • 我提供了一个可能的模式。看看吧。

标签: java arrays console


【解决方案1】:

我不确定这是否正是你想要的答案,但你可以试试这个:

tempString2 = "      " + trainTrack[5]+ "\n  " + trainTrack[4] + "    " + trainTrack[6]
    + "\n"+ trainTrack[3] + "        " + trainTrack[7]  + "\n"+ trainTrack[2] + "        "
    + trainTrack[8] + "\n  "+ trainTrack[1] + "    " + trainTrack[9] + "\n      "
    + trainTrack[0] + "\n  "+ trainTrack[10] + "    " + trainTrack[18] + "\n"+ trainTrack[11]
    + "        " + trainTrack[17]   + "\n"+ trainTrack[12] + "        " + trainTrack[16]
    + "\n  "+ trainTrack[13] + "    " + trainTrack[15] + "\n      " + trainTrack[14];

输出:

      [..]
  [..]    [..]
[..]        [..]
[..]        [..]
  [..]    [..]
      [..]
  [..]    [..]
[..]        [..]
[..]        [..]
  [..]    [..]
      [..]

您也可以使用String.format() 获得相同的结果。它使程序更小、更整洁,但更难理解:

String tempString2 = String.format("%10s\n%6s%8s\n%4s%12s\n%4s%12s\n%6s%8s\n%10s\n%6s%8s\n%4s%12s\n%4s%12s\n%6s%8s\n%10s",
    trainTrack[5], trainTrack[4], trainTrack[6], trainTrack[3], trainTrack[7], trainTrack[2],
    trainTrack[8], trainTrack[1], trainTrack[9], trainTrack[0], trainTrack[10],
    trainTrack[18], trainTrack[11], trainTrack[17], trainTrack[12], trainTrack[16],
    trainTrack[13], trainTrack[15], trainTrack[14]);

【讨论】:

  • 这个答案是正确的,但非常规!我认为可能有一些方法可以接受如此距离参数或类似的东西!
【解决方案2】:

这个怎么样?

  [..][..]
[..]    [..]
[..]    [..]
[..]    [..]
[..][..][..]
[..]    [..]
[..]    [..]
[..]    [..]
  [..][..]

看起来更干净,更合适。 (也更圆)

【讨论】:

  • 我不能这样做,因为这不是所需的输出,我需要按照问题中的说明进行操作!那么有没有办法做到这一点?
  • 我已经改变了答案。看看吧。
  • 是的,这是一个更好的答案,但我仍然需要它按照问题中的建议显示!我知道我使用了选项卡,但有没有办法指定移动对象的确切空间,以便我可以单独设置它们?
  • 是的。代替“\t”,输入“”,并在引号中包含所需数量的空格。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-27
  • 2023-01-11
  • 1970-01-01
  • 2018-04-26
相关资源
最近更新 更多