Generalmente è meglio non mixare nextLine() e nextInt() (o gli altri). Se intendi usare nextLine(), allora usa sempre questo per tutti gli input e converti in valore primitivo quello che ti serve.
Eventualmente puoi farti dei metodi appositi per questo o addirittura una piccola classe separata (che puoi riutilizzare nei tuoi progetti) per gestire l'input con magari supporto per la ripetizione dell'input in caso di input malformato o altre feature del genere.