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初学者-转义序列[重复]的主要内容,如果未能解决你的问题,请参考以下文章

java重复字符

Java中的随机整数[重复]

Java初学记录——练习题

Java初学记录——练习题

Java初学记录——练习题

Java - 方法调用后对象状态不会改变[重复]