This question already has answers here:
Printing with “\t” (tabs) does not result in aligned columns
                                
                                    (8个答案)
                                
                        
                3年前关闭。
            
        

我是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();
}


输出结果如下:

java - Java初学者-转义序列-LMLPHP

我的意思是,为什么选项卡不是在每种情况下都“相同大小”,即1x1 = 1与1x2 = 2距离很远,而10x1 = 10和10x2 = 20距离更近。
另外,当我尝试在代码中执行以下操作时:

System.out.println(j + "*" + i + " = " + j*i + "\t");


(注意等号两边的空格),输出混乱:

java - Java初学者-转义序列-LMLPHP

最佳答案

默认情况下,制表符(\t)形成一个“表”,因此列具有固定大小(制表符宽度)。在控制台中,将添加空格,直到下一列开始。

如果您的文本宽于(或等于)一列(如您的第二个示例中所示),那么将跳过下一列(这就是为什么要添加另一列的原因),结果看起来有些奇怪。

您可以使用简单的文本编辑器进行尝试,只需按制表键,您将看到相同的行为:

a       b       c
looooooong      d       e

07-24 09:27