[Useful Info] Java Basics - java.util.Scanner: Typical Incorrect Usage
Колеги, и двата дни по време на Java изпитите масово отваряте по няколко Scaner-а върху един и същ входен поток (System.in). Това по някаква случайност в Eclipse работи, но по концепция е грешно! Не го правете. Това е грешно! Ето примерен код, който не трябва да пишете:
int firstInt = readInt();
String secondLine = readLine();
System.out.println(firstInt);
System.out.println(secondLine);
private static int readInt() {
Scanner input = new Scanner(System.in);
return input.nextInt();
}
private static String readLine() {
Scanner input = new Scanner(System.in);
return input.nextLine();
}
Как да избегнете този проблем? Ами подайте си отворения Scanner като параметър или го направете статично поле в класа.
Това дори по някаква случайност да работи локално в Eclipse, на Judge системата със сигурност гърми.