1

我有以下代码:

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

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

在哪里t打印:

“AB C”

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

而是s打印:

美国广播公司

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

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

4

5 回答 5

6

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

大多数 shell 实现的选项卡很像打字机。因为你有"之前的A,它已经是制表位的一个字符。但B出现在制表位上,因此它和C.

例如,请注意+下面代表制表位的每个恰好有 8 个字符,以及您的两个字符串:

+ + + + + + +
“AB C”
美国广播公司
于 2013-10-18T10:23:19.523 回答
2

制表符是制表符 - 它不等同于一些空格。它的显示和对齐方式取决于控制台。

于 2013-10-18T10:23:22.337 回答
2

当您使用标签时,您会选择下一个固定宽度的位置。

如果制表符的固定位置是(8 个字符),当您在位置 9 到 15 时,如果您制表符,您将转到位置 16。

这就是您的 java 输出中正在发生的事情。

于 2013-10-18T10:24:22.083 回答
1

制表符大小为 8 个字符,并且使用 8 的倍数执行对齐,因此在这两种情况下,B 在距边距 8 个字符处对齐,而 C 在距边距 16 个字符处对齐。

于 2013-10-18T10:23:41.790 回答
0

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

于 2013-10-18T11:36:25.567 回答