我有以下代码:
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个空格。
为什么在第一个字符串中,制表符空格的大小不同?
答案 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个位置。