我是一名学生,我决定尝试一下UVA Online Judge的一些问题集以帮助提高我的技能。第一个问题我碰到了一堵砖墙。在对付编译器错误(我最后发现了一些在他们的论坛中提交Java代码的模糊指导)之后,我现在已经毕业于“错误答案”状态。Scanner.nextLine()不返回null?
要到一点 - 如果我不与周围一个try/catch这个while循环,它在调用Integer.parseInt()
输入字符串""
在运行时生成NumberFormatException
。这是有道理的,除非输入是""
那么它是null
并且不应该进入循环。
我试过摆脱split(" ")
并使用StringTokenizer
,但这会产生错误的索引异常。
该程序工作正常,直到我通过按Enter键结束输入。那是错误产生的时候。如果我用try/catch包围循环,没有错误,但控制台似乎会抛出额外的换行符,并且我认为这是我的“错误答案”状态的来源。
我在做什么错?
public static void main(String[] args){
Scanner kb = new Scanner(System.in);
String input;
String[] temp;
int i, j;
while((input = kb.nextLine()) != null){
temp = input.split(" ");
i = Integer.parseInt(temp[0]);
j = Integer.parseInt(temp[1]);
solve(i, j);
}
}
空字符串不是'null' ... – krookedking 2011-04-07 12:55:54
http://stackoverflow.com/questions/4802015/difference-between-null-and-java-string – Ishtar 2011-04-07 13:22:03