我是学生,我决定在UVa Online Judge尝试一些问题集,以帮助提高我的技能.在第一个问题上,我遇到了一堵砖墙.在打击编译器错误之后(我终于找到了一些在他们的论坛中提交Java代码的模糊指南),我现在已经毕业于"错误答案"状态.
为了达到目的 - 如果我没有用try/catch包围这个while循环,它会在调用NumberFormatException时在输入字符串""上生成一个运行时Integer.parseInt().这是有道理的,除非输入是,""它null不应该进入循环.
我试过摆脱split(" ")并使用a 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);
}
}
Run Code Online (Sandbox Code Playgroud) java ×1