我在https://www.thehuxley.com上提交我的答案時遇到問題。當我運行我的Eclipse的代碼,一切正常的話,但赫胥黎,我得到這個:Huxley:java.util.NoSuchElementException:找不到行
Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Scanner.java:1540)
at HuxleyCode.main(HuxleyCode.java:12)
這裏是代碼本身:
import java.io.*;
import java.util.*;
public class HuxleyCode {
public static void main(String args[]) {
Scanner in = new Scanner(System.in);
int menor = 0, pos = 0, entradas = 0, temp;
entradas = in.nextInt();// WATCH OUT THIS LINE
in = new Scanner(System.in);
String valores = in.nextLine();
entradas = 0;
for (String val : valores.split(" ")) {
temp = Integer.valueOf(val);
if (entradas == 0) {
menor = temp;
} else if (temp < menor) {
menor = temp;
pos = entradas;
}
entradas++;
}
in.close();
System.out.println("Menor valor: " + menor);
System.out.println("Posicao: " + pos);
}
}
只是爲了補充,在該行,我評論說:「WATCH OUT此行」,如果我刪除了這一行,掃描儀忽略nextInt()電子跳到NextLine(),導致此錯誤:
Exception in thread "main" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:592)
at java.lang.Integer.valueOf(Integer.java:766)
at HuxleyCode.main(HuxleyCode.java:16)
哪裏是我的錯,爲什麼不能在赫胥黎工作?
預期輸入是:
10
1 2 3 4 -5 6 7 8 9 10
和輸出:
Menor valor: -5
Posicao: 4
'在=新掃描儀(System.in);'你不需要重新初始化掃描儀每次。您可能會丟失掃描儀以前的實例中的inputLine。 – kaza
當您以交互方式運行(緩慢)時,緩衝區未加載所有輸入。但是在Huxley中,可能所有的行都立即被加載到'System.in'中,從而加載了所有輸入行的'Scanner'的第一個實例。 – kaza
那麼,我應該如何解決這個問題?創建兩個掃描儀不會解決問題:/ –