【发布时间】:2014-05-27 17:42:28
【问题描述】:
if (first == true) {
x = input.read(); // input is a Reader
nextCharacter = input.read();
first = false;
}
else {
x = nextCharacter;
nextCharacter = input.read();
charPosition++;
}
while (x == ' ' || x == '\n') {
if (x == ' ') {
x = nextCharacter;
}
else {
x = nextCharacter;
}
}
我正在读取一个包含三个空行的输入文本文件。 x 逐个字符读取。 x 等于一个新行,因此它应该进入 while 循环,但它没有。我调试了代码并打印出来以检查 x 是否包含新行。它打印出 x= 13, x = 10, x = 10。在所有这三种情况下,它都会跳过 while 循环。
我尝试的另一种方法:
while(x == '\n') {
System.out.println("entered");
x = nextCharacter;
}
当我在自己的 while 循环中编写它时,它将第二次进入循环 (x = 10),但第三次在 x = 10 时返回。这不应该发生,它应该留在循环中直到到达文件末尾 (x = -1)。
我也尝试过 Character.toString((char) nextChar) == "\r\n" 但结果与第一个相同。
我做错了什么?
【问题讨论】:
-
在哪里设置 nextCharacter?
-
nextCharacter是您在某处定义的方法吗?尝试提供一个简短的 可编译 示例来演示该问题。就目前而言,我们无法测试此代码。 -
请提供输入+输出
-
x 使用 i.read() 读取输入输入是一个空白文本文件,我在其中单击了两次输入。所以输出应该让我知道文件的结尾在第 3 行。我使用@Actimia 建议将其设为 Character.isWhitespace(x) 并且它可以工作,除了行号是 5 而不是 3。我打印了一些语句来查看 x 是什么,它说 x = 13 x: 10 x: 13 x: 10
-
@Takendarkk nextCharacter 是输入文件中的下一个字符。
标签: java loops while-loop char newline