Я пытаюсь понять класс сканера в java, из некоторых примеров пытаюсь, что я двусмысленен с двумя программами, где я не вижу никакой логики, но вывод говорит о том, что чего-то мне не хватает. Пожалуйста, помогите мне в этомПонимание Сканера в Java
public static void main(String args[]) {
Scanner scanner1=new Scanner(System.in);
String s=scanner1.nextLine();
scanner1.close();
// create a new scanner with the specified String Object
Scanner scanner = new Scanner(s);
// print the next line
System.out.println("" + scanner.nextLine());
// check if there is a next line again
System.out.println("" + scanner.hasNextLine());
// print the next line
System.out.println("" + scanner.nextLine());
// check if there is a next line again
System.out.println("" + scanner.hasNextLine());
// close the scanner
scanner.close();
}
выше программы печати ниже выхода
Hello World! \n 3+3.0=6
Hello World! \n 3+3.0=6
false
Хотя ниже программа, которая я не видит никакой разницы с выше показывают различные выходные
public static void main(String[] args) {
String s="Hello World! \n 3 + 3.0 = 6";
// create a new scanner with the specified String Object
Scanner scanner = new Scanner(s);
// print the next line
System.out.println("" + scanner.nextLine());
// check if there is a next line again
System.out.println("" + scanner.hasNextLine());
// print the next line
System.out.println("" + scanner.nextLine());
// check if there is a next line again
System.out.println("" + scanner.hasNextLine());
// close the scanner
scanner.close();
}
выхода вышеуказанной программы является
Hello World!
true
3 + 3.0 = 6
false
В первом примере вы используете 'scanner1', только тогда' scanner'. Это опечатка? – Maroun
В первом примере я использую два объекта сканера, один из них - сканер 1, чтобы сохранить входную строку с клавиатуры, а затем разобрать ее со сканером. Во втором примере я непосредственно жестко кодирую входную строку в программе, в отличие от предоставления ее во время выполнения (как в первом примере) –