提问人:adi. 提问时间:8/25/2021 更新时间:8/25/2021 访问量:1155
为什么我的 Java 输出字符串以末尾的 % 字符结尾?
Why does my Java output string end with the % character at the end?
问:
我在 Linux 上使用的 Java 版本是:
- OpenJDK 版本“16.0.2” 2021-07-20
- OpenJDK 运行时环境(内部版本 16.0.2+7)
- OpenJDK 64 位服务器 VM(内部版本 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");
}
}
}
我是这样编译的:
javac DooBee.java
java DooBee
这是输出:
DooBeeDooBeeDo%
为什么字符串末尾会出现特殊字符(%),我该如何编写代码来摆脱它?
答:
1赞
Sam
8/25/2021
#1
我不认为 % 来自你的 java 程序,而是来自你的 shell。程序的最后一个输出是 a 而不是 .这将导致输出结束时没有换行符。您正在运行的 shell 将返回到现有行的中间。如果它使用 % 作为提示,那么这就是原因。
将最后一个更改为,希望您很好。尝试在 IDE 或其他 shell 中运行它以确保。或者也许更改提示,只是作为调试措施?print()
println()
print
println
评论
0赞
adi.
8/25/2021
我已将最后一个更改为,现在它正确出现。我还在 shell 中编写和编译了程序,因此问题应该在 shell 中是有道理的。print()
println()
5赞
m.antkowicz
8/25/2021
#2
可能您正在使用 ZSH 终端,如果进程未提供新行,它会自动以字符(对于 root 用户)结束行(或者更确切地说是“在同一行中开始新行”),从而创建名为部分行的内容%
#
请注意,您使用的是System.out.print
System.out.println
在这里阅读更多内容:
评论
%
System.out.println()