В разделе "Продвинутая работа с массивами" в пункте 1. Массив типа String есть пример задачи:
Вот как бы выглядел код, если бы нам нужно было написать программу, которая «вводит с клавиатуры 10 строк и выводит их на экран в обратном порядке».
Scanner console = new Scanner(System.in); //Создаем объект Scanner
String[] array = new String[10]; //Создаем объект-массив на 10 элементов
for (int i = 0; i < 10; i++) //Цикл от 0 до 9
{
array[i] = console.nextLine(); //Читаем строку с клавиатуры и сохраняем ее в очередную ячейку массива
}
for (int i = 9; i >= 0; i--) //Цикл от 9 до 0
{
System.out.println(array[i]); //Выводим на экран очередную ячейку массива
}
Вроде понятно, но не понятно вот что, у нас 10 ячеек, я запускаю данный код, ввожу данные:
"a"
жму Enter подразумевая что a - записывается в 0 ячейку массива
"b"
жму Enter подразумевая что b - записывается в 1 ячейку массива
"c"
жму Enter подразумевая что c - записывается в 2 ячейку массива
"d"
жму Enter подразумевая что d - записывается в 3 ячейку массива
"e"
жму Enter подразумевая что e - записывается в 4 ячейку массива
"f"
жму Enter подразумевая что f - записывается в 5 ячейку массива
НО, ввод прерывается окончанием программы и вывод работы программы такой:
e
d
c
b
a
Вопросы,
1. Почему программа остановилась после ввода 6ой буквы?
2. Почему вывелось всего 5 букв из 6ти принятых?
3. Как при таком коде ввести и вывести "10 строк"?
Послесловие:
Я прочитал про nextLine() и различия между next(), но до сих пор мне не заходит почему так?
Второе, зачем в таком примере использовать nextLine(), если при использовании next() будет записано именно 10! строк в 10 ячеек массива, и вывод будет корректным.
Получился какой то крик души, но прошу помощи!