为什么我的 Java 输出字符串以 % 字符结尾?

adi*_*di. 2 java string loops

我在 Linux 上使用的 Java 版本是:

  • openjdk版本“16.0.2”2021-07-20
  • OpenJDK 运行时环境(版本 16.0.2+7)
  • OpenJDK 64 位服务器虚拟机(版本 16.0.2+7,混合模式)

这是我从 Head-First Java 书中编译出来的代码:

public class DooBee {
public static void main(String[] args) {    
  int x = 1;
  while (x < 3) {
    System.out.print("Doo");
    System.out.print("Bee");
    x = x + 1;
  }
    if( x == 3) {
        System.out.print("Do");
    }
}
Run Code Online (Sandbox Code Playgroud)

}

我是这样编译的:

javac DooBee.java

java DooBee

这是输出:

DooBeeDooBeeDo% 
Run Code Online (Sandbox Code Playgroud)

为什么该特殊字符(%)出现在字符串末尾以及如何编写代码来删除它?

m.a*_*icz 5

可能您正在使用ZSH终端,如果进程未提供新行,它会自动以%字符(或者对于 root 用户)结束行(或者更确切地说“在同一行中开始新行”) ,创建名为部分行的内容#

请注意,您正在使用System.out.print而不是System.out.println


在这里阅读更多内容: