Java 初学者 - 转义序列

标签 java

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

为什么输出是这样的:

enter image description here

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

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

(注意等号两边的空格),输出困惑:

enter image description here

最佳答案

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

如果您的文本比列宽(或与列一样宽)(如第二个示例中所示),则将跳过下一列(这就是添加附加列的原因),结果看起来有点奇怪。

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

a       b       c
looooooong      d       e

关于Java 初学者 - 转义序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39247773/

相关文章:

java - 不同的 Netty 版本及其用途

java - 使用 Hibernate 在 JPA 中分页 native SQL 查询而不会出错

java - Java Swing 中的跑马灯效果

java - 如果我发现错误会发生什么?

java - 如何解决maven项目中两个同名bean的冲突?

java - 黑莓检查 Facebook 集成权限

java - java(windows平台)中两个Integer解析为相同的hashcode

java - SQL Server - 查询空表的性能差异

Java resultSet getInt() 无返回值

javax.validation 验证值列表?