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()。
最佳答案
我猜想你在\r
变量中有一个流回车符(messageFile
),它没有换行符(\n
)。
编辑-此测试符合预期:
class Println {
public static void main(String[] args) {
System.out.println("xxxx this \rTEST");
}
}
输出:
TEST this