Duvidas com os métodos next() e nextLine()

Pessoal, estou com o seguinte problema:

Estou produzindo um código para ler algumas informações. Em certa altura desse código uso o metodo next() para receber os dados, ficando assim:

            out.printf("Digite o tipo do veículo (Carro ou Moto):\n");
            String tipoVeiculo = input.next();
            
            out.printf("Digite a marca do veículo:\n");
            String marcaVeiculo = input.next();            
            
            out.printf("Digite a descrição do veículo:\n");
            String descricaoVeiculo = input.next();                    
            
            out.printf("Digite o período que o Sr.(a) %s deseja ficar com o veículo:\n", nomeCliente);
            int periodoAluguelVeiculo = input.nextInt();                    

Quando é digitado por exemplo duas palavras para “tipoVeiculo” o metodo next() pega a segunda palavra e atribui a “marcaVeiculo.” Se digita-se três palavras, a terceira palavra e atribuida a “descricaoVeiculo”, e assim por diante.

Tentei usar o método nextLine() para resolver o caso, entretanto quando uso esse método ele pula a primeira entrada, ou seja, nesse ponto do código ele pede para digitar “a marca”, e pula “o tipo”.

Fiz uma busca para ver se eu encontrava uma solução e achei um tópico em http://www.portaljava.com/home/modules.php?name=Forums&file=viewtopic&p=153493 que me esclareceu a diferença entre os métodos.

O problema é que nenhum dos dois está se adequando ao que preciso!

O que preciso é ler uma ou mais palavra e atribuir a uma variável por vez.

Alguém pode me ajudar?