String messageFile = ... // Assume messageFile SHOULD have the string "MESSAGE"
System.out.println("The messageFile is: " + messageFile + "!!");
通常,人们会期望上面的命令输出:
The messageFile is: MESSAGE!!!!
但是,我收到的是:
!!e messageFile is: MESSAGE
看上面的语句,“!!”点似乎环绕着消息。我的理论是:
String messageFile = ...
包含的字符比我假定的“MESSAGE”更多。结果,它将下一个输入(在本例中为“!!”)包装到 System.out.println() 消息的前面。
是什么角色造成的?
额外信息:
顺便说一句,通过将命令行参数传递给 java 类 myClassA 来初始化 messageFile。 myClassA 的构造函数使用 super() 将 messageFile 参数传递给 myClassB。 myClassB 将 messageFile 传递给 function()。
最佳答案
我猜你在 messageFile
变量中有一个杂散的回车符 (\r
),它没有换行符 (\n
>).
编辑 - 此测试符合预期:
class Println {
public static void main(String[] args) {
System.out.println("xxxx this \rTEST");
}
}
输出:
TEST this
关于java - Java程序中的Bizzare System.out.println(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3407377/