Tab Escape字符似乎无效

时间:2016-01-11 00:02:59

标签: java

我正在制作一款简单的纸牌游戏,并遇到了一些奇怪的事情。当我使用这段代码时:

System.out.println("Computer:\t"+6+" cards");
System.out.println("Player:\t"+7+" cards");

它忽略了第二个语句中的选项卡。如果我像这样放入另一个表格,我可以轻松解决这个问题:

System.out.println("Computer:\t"+6+" cards");
System.out.println("Player:\t\t"+7+" cards");

但我想知道为什么忽略第一个标签。

1 个答案:

答案 0 :(得分:1)

您的标签字符实际上并未被忽略。打印制表符的长度一直到下一个可被4整除的位置。例如,请参阅此IDEOne program的输出。

如您所见,以下行的结果代码为:

System.out.println("a\ta\ta\ta");
System.out.println("ab\tab\tab\tab");
System.out.println("abc\tabc\tabc\tabc");

如下:

Line1:  a   a   a   a
Line2:  ab  ab  ab  ab
Line3:  abc abc abc abc    

单独选项卡的长度为4.但是打印选项卡会填充可变长度的空格,直到达到可被4整除的位置。第一行中标签的填充空间为3,因为a占用1个长度,第二行的标签填充空间为2,因为ab占用2长度等。

我希望有所帮助。