Java BufferedReader包括换行符、can和#x27;t将字符串解析为数字

Java BufferedReader包括换行符、can和#x27;t将字符串解析为数字,java,input,io,bufferedreader,java-io,Java,Input,Io,Bufferedreader,Java Io,这是我使用BufferedReader简化获取输入的方法,我的输入是“10 12\n”。其余代码使用Integer.parseInt(//返回值)中此函数的返回值,并且可以使用值“10”来实现,但是它使用12获得了一个NumberFormatException,因为包含了换行符 我不明白当我在append()之前专门放了一个if-语句时,它是如何被包括在内的 将所有内容读入字符串,然后调用trim(),然后解析字符串 或者,您可以使用Character.isleterOrdigit(x)验证输入

这是我使用BufferedReader简化获取输入的方法,我的输入是“10 12\n”。其余代码使用Integer.parseInt(//返回值)中此函数的返回值,并且可以使用值“10”来实现,但是它使用12获得了一个
NumberFormatException
,因为包含了换行符

我不明白当我在
append()
之前专门放了一个
if
-语句时,它是如何被包括在内的


将所有内容读入字符串,然后调用
trim()
,然后解析字符串


或者,您可以使用
Character.isleterOrdigit(x)
验证输入
char x

为什么不使用
扫描仪
?它为您处理空白,甚至可以包装
读取器

Scanner scanner = new Scanner( br);

while(scanner.hasNextInt()){
  int myInt = scanner.nextInt();
}
//should probably put close in a finally block
scanner.close();

字符“反斜杠”和“n”(
\\`和
n
)是否存在,使其看起来像换行符
\n`?@rgetman否它肯定是'\n'因为我修剪字符串时,没有错误,“\n”不可见哦,因为我正在解决UVA问题,扫描仪会减慢速度,这将导致它不被K接受!它现在没有接收到错误,但是当我特别放置一个不包含它的条件语句时,为什么它包含“\n”呢?我不知道。您确定是您收到的
\n
无法评估吗?您可以尝试
Character.isleterordigit(x)
Scanner scanner = new Scanner( br);

while(scanner.hasNextInt()){
  int myInt = scanner.nextInt();
}
//should probably put close in a finally block
scanner.close();