这是我用来简化使用BufferedReader获取输入的方法,我的输入是“10 12 \ n”其余代码使用此函数的返回值Integer.parseInt(//return value)
并且能够使用值“10”来执行此操作,但它会得到一个NumberFormatException
和12,因为包含换行符。BufferedReader包含换行符,不能将字符串解析为数字
我不明白如何在append()
之前明确提出if
-陈述时包含它。
private static String getInput(BufferedReader br) {
StringBuilder sb = new StringBuilder();
char x = 0;
try {
x = (char) br.read();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
while (x != ' ' && x != '\n' && x != -1) {
if (x != ' ' && x != '\n' && x != -1)
sb.append(x);
try {
x = (char) br.read();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return (sb.length() == 0) ? null : sb.toString();
}
是否存在字符“反斜杠”和“n”('\\\'和'n'),使它看起来像换行符'\ n'? – rgettman
@rgettman没有它的绝对'\ n'原因当我修剪的字符串,没有错误,'\ n'不可见 – latenightcode