Java初学者-转义序列[重复]
Posted
技术标签:
【中文标题】Java初学者-转义序列[重复]【英文标题】:Java beginner - escape sequences [duplicate] 【发布时间】:2016-08-31 10:59:46 【问题描述】:我是 Java 编程新手,/t 转义序列让我感到困惑。我试着写乘法表的代码:
for(int i = 1; i<=10; i++)
for(int j = 1; j<=5; j++)
System.out.println(j + "*" + i + "=" + j*i + "\t");
System.out.println();
为什么输出是这样的:
我的意思是,为什么选项卡在每种情况下都不是“相同大小”,即 1x1=1 与 1x2=2 相差甚远,但 10x1=10 和 10x2=20 更接近。 另外,当我尝试在代码中做这样的事情时:
System.out.println(j + "*" + i + " = " + j*i + "\t");
(注意等号两边的空格),输出混乱:
【问题讨论】:
您似乎误解了“标签”的含义。制表符不是一定数量的空格宽,但它用于对齐文本,它在您的代码中执行。 您应该查找“标签”的功能。这与 Word 等文本编辑软件中的概念相同。 您的第二个输出搞砸了,因为某些文本与制表符一样宽,因此在某些情况下它会跳到第 8 列的制表符位置,而在其他情况下会跳到第 16 列。跨度> Tab 在任何文字处理器中的工作方式都相同。如果\t
之前的文本比设置的tab-position长,tab跳转到下一个tab-position。
不同的编辑器、控制台等,对待标签的方式略有不同,行为也取决于字体。通常有一个“制表位”的概念来定义列和列宽。制表符的宽度与到下一个制表位的距离一样宽。有时还有一个额外的要求,即它至少与空格一样宽(所以你最终会到达 next 制表位),有时宽度允许为 0。所有这些实际上都没有与 Java 或 \t 转义有关。在具有等宽字体的控制台上,通常每 8 个字符位置有一个制表位。
【参考方案1】:
默认情况下,制表符 (\t
) 形成一个“表格”,因此列具有固定大小(制表符宽度)。在控制台中,会添加空格,直到下一列开始。
如果您的文本比列宽(或与第二个示例一样宽),则下一列将被跳过(这就是添加额外列的原因),结果看起来有点奇怪。
您可以使用简单的文本编辑器进行尝试,只需按下制表键,您将看到相同的行为:
a b c
looooooong d e
【讨论】:
以上是关于Java初学者-转义序列[重复]的主要内容,如果未能解决你的问题,请参考以下文章