Car*_*ndo 3 java linux string debugging char
String messageFile = ... // Assume messageFile SHOULD have the string "MESSAGE"
System.out.println("The messageFile is: " + messageFile + "!!");
Run Code Online (Sandbox Code Playgroud)
通常,人们会期望上面的命令输出:
The messageFile is: MESSAGE!!!!
Run Code Online (Sandbox Code Playgroud)
但是,我收到了这个:
!!e messageFile is: MESSAGE
Run Code Online (Sandbox Code Playgroud)
看看上面的陈述如何,"!!" 点似乎环绕着消息.我的理论是:
String messageFile = ...
Run Code Online (Sandbox Code Playgroud)
包含的字符多于我假设的"MESSAGE".结果,它将下一个输入(在本例中为"!!")包装到System.out.println()消息的前面.
这个是什么角色造成的?
额外信息:
顺便说一句,messageFile是通过将命令行参数传递给java类myClassA来初始化的.myClassA的构造函数使用super()将messageFile参数传递给myClassB.myClassB将messageFile传递给function().
Kal*_*son 16
我猜你\r在messageFile变量中有一个乱码回车(),没有换行符(\n).
编辑 - 按预期测试:
class Println {
public static void main(String[] args) {
System.out.println("xxxx this \rTEST");
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
TEST this
Run Code Online (Sandbox Code Playgroud)