Здесь:
String string1 = scan.nextLine().nextLine();
Давайте разобьем:
String string1 = scan.nextLine()
звонит nextLine()
на сканер. Он возвращает String.
Таким образом, ваш код сводится к
String string1 = someOtherString.nextLine();
что, конечно, не может работать. Потому что класс String понятия не имеет о следующей строке и, следовательно, не имеет такого метода!
Помните: сканер возвращает строку, а это два совершенно разных объекта.
Если вы берете яйцо из коробки, то почему вы ожидаете, что сможете взять еще одно яйцо из того яйца, которое у вас есть?! Вы можете взять два яйца из одной коробки, но не яйцо из яйца.
Наконец: да, есть идея «свободных» API, которые позволяют связывать вызовы методов «такими» способами. Но это может работать только в сценариях, специально предназначенных именно для этого.
person
GhostCat
schedule
10.09.2018
nextLine
возвращаетString
и у него нет функции-членаnextLine
. - person Johnny Mopp   schedule 10.09.2018Scanner#nextLine
возвращает строку, а не другой объектScanner
. Цепочка здесь не имеет смысла; вы хотите использовать строковое значение, которое возвращается. - person Tim Biegeleisen   schedule 10.09.2018