\ t与Java中的间距不一致

时间:2014-09-09 17:31:41

标签: java format

所以我用过这个:

System.out.println("Of what race do you belong?\n[H]uman\t [E]lf\t [D]warf\t [O]rc\t [G]nome");

获得了一个非常随机的间距的印记,其中放置了\ t。我也用过这种相同类型的东西:

System.out.println("Which of the following are you?\n[W]arrior\t [R]ogue\t [M]agician");

为\ t获得完美间隔的休息时间。有什么理由会让我与第一个人有这么奇怪的间距?

5 个答案:

答案 0 :(得分:7)

\ t是标签。打开常规文本编辑器并检查选项卡的行为方式。它缩进到某个位置。它不会插入x个空格。

答案 1 :(得分:2)

\t插入一个TAB字符,而不是空格。知道了这一点,你不应该使用标签来格式化数据的输出。

由于这会向用户显示数据,因此最好使用String#format,这样可以为文本的左侧和右侧提供空格。

以下是使用%-15s的示例:

//splitted in 2 lines for better understanding
String outputText = String.format("Of what race do you belong? %-15s %-15s %-15s %-15s %-15s",
    "[H]uman", "[E]lf", "[D]warf", "[O]rc", "[G]nome");
System.out.println(outputText);

其中:

  • %s表示它会在输出中添加String
  • 15是找到字符串的空格数
  • -表示应该左对齐。

上面的代码输出:

Of what race do you belong? [H]uman         [E]lf           [D]warf         [O]rc           [G]nome

只需修改-15即可缩短空格的长度。

有关如何正确格式化输出文本的详细信息:

请注意,使用System.out.printf也会在场景后面使用Formatter

答案 2 :(得分:1)

\t字符是制表字符。

后续标签行为不一致",因为它们不会显示相同数量的空间。

您应该使用常规数量的空格。

类似的东西:

System.out.println("Of what race do you belong?\n[H]uman   [E]lf   [D]warf   [O]rc   [G]nome");

答案 3 :(得分:0)

使用\t时,您要添加标签而不是空格。

答案 4 :(得分:0)

正如其他人所说的那样\ t是标签,空格总是一列,但标签可能是不同数量的列,具体取决于您的环境。