字符串中的标签大小不同

时间:2013-10-18 10:20:57

标签: java

我有以下代码:

String t = "\"A\tB\tC\"";
String s = "A\tB\tC";

System.out.println(t);
System.out.println(s);

t打印此内容:

"A      B       C"

和“A e B为6个空格,而B和C之间的制表空间”之间的制表符空格为7个空格。

相反s打印出来:

A       B       C

,A e B之间的制表空间为7个空格,B和C之间的制表空间也为7个空格。

为什么在第一个字符串中,制表符空格的大小不同?

5 个答案:

答案 0 :(得分:6)

这完全取决于Java程序运行的程序(“console”或“shell”),它与Java无关。

大多数shell都像打字机一样实现制表符。因为"之前有A,所以它已经是制表位中的一个字符。但B出现在制表位上,因此它与C之间有更多空间。

例如,请注意下面的+表示制表符,每个制表符都有8个字符,以及两个字符串:

+       +       +       +       +       +       +
"A      B       C"
A       B       C

答案 1 :(得分:2)

Tab是一个标签 - 它不等于某些空格。它的显示和排列方式取决于控制台。

答案 2 :(得分:2)

当您选择标签时,您将转到下一个固定宽度的位置。

如果标签的那些固定位置是(8个字符),当你在9到15的位置时,如果你选项卡,你将转到16位。

这是你的java输出上的东西。

答案 3 :(得分:1)

选项卡大小为8个字符,并且使用8的倍数执行对齐,使得B在距边距8个字符处对齐,并且在两种情况下C与边距对齐16个字符。

答案 4 :(得分:0)

在Java中\t(tab)具有特定大小的空格。在Java中使用\t时,它会将光标放在第8个位置之后。如果您已写入2个单词然后追加\t,则光标将位于第6个位置。