我给了两个文本文件,一个使用\ n表示换行符,另一个使用\ r \ n。我只是想能够检查这两个中的哪一个。我想使用BufferedReader逐个字符地读取并搜索\(使用\),然后检查下一个字符是什么,但是当我在txt文件中搜索任何\ s时,我都没有得到任何结果,循环刚刚结束。
现在,我只是试图通过打印\和它后面的任何字符进行测试,所以当我运行文件时我应该打印出一堆\ n或\ r \ n,但我只是得到完成打印。有什么建议吗?
char x;
while(reader.ready())
{
x = (char) reader.read();
if(x == '\\')
System.out.println(x + "" + (char) reader.read());
}
System.out.println("Done");
答案 0 :(得分:1)
您混淆了一个字符\r
和一个由两个字符\
和r
组成的字符串。以下代码适合您:
char charValue;
while ((charValue = (char) reader.read()) != -1) {
if ('\n' == charValue) {
System.out.println("\\n");
}
if ('\r' == charValue) {
System.out.println("\\r");
}
}
答案 1 :(得分:0)
查看要解析的文本类型会很有用。
例如,如果您的文件如下所示:
The lazy brown dog\n jumped over the fox.\n
您当前的代码应该可行。但是,如果文件看起来像这样:
The lazy brown dog
jumped over the fox
你的代码不会。第二个文件实际上不包含字符'\'。相反,它包含换行符和回车符或仅包含换行符。如果您正在测试'\ n',您实际上想要测试字符0x0A(或字符10)。你可能想要测试它。
我的建议是确保你正在测试正确的角色。如果您是,那么发布您正在解析的文件样本将有助于使问题更加清晰。
(我知道这应该是评论而不是答案,但我现在不能发表评论。)