Problema ao trabalhar com método String

Bom dia a todos!
Sou novo no forum e apresento o seguinte problema, tenho 2 classes:

public class ItemPedido
{
    private int intCod;
    private String strDesc;
    private double dblPreco;
    
    //construtor
    public ItemPedido(int codigo, String descricao, double valor)
    {
        intCod = codigo;
        strDesc = descricao;
        dblPreco = valor;
    }
    
    public void setCodigo(int codigo)
    {
        if (codigo > 0)
        intCod = codigo;
    }
    
    public void setDesc(String descricao)
    {
        strDesc = descricao;
    }
    
    public void setValor(double valor)
    {
        if (valor > 0)
        dblPreco = valor;
    }
    
    public int getCodigo()
    {
        return intCod;
    }
    
    public String getDesc()
    {
        return strDesc;
    }
    
    public double getPreco()
    {
        return dblPreco;
    }
    
}

e a classe

import java.util.Scanner;

public class ItemPedidoTest
{
    public static void main(String args[])
    {
        ItemPedido vetor[];
        
        vetor = new ItemPedido[3];
        
        for (int i = 0; i < vetor.length; i++)
        {
            vetor[i] = new ItemPedido(0,"A",0);
            
        }
        
        Scanner input  = new Scanner(System.in);
        
        
        for (int i = 0; i < vetor.length; i++)
        {
            System.out.printf("\n Digite o código do produto: ");
            vetor[i].setCodigo(input.nextInt());
            
            System.out.printf("\n Digite a descrição do produto: ");
            vetor[i].setDesc(input.nextLine());
            
            System.out.printf("\n Digite o valor do produto: ");
            vetor[i].setValor(input.nextDouble());
        }
        
        double total =0;
        
        for (int i = 0 ; i< vetor.length; i++)
        {
            System.out.printf("\n\n Código: %d", vetor[i].getCodigo());
            System.out.printf("\n Descrição: %s", vetor[i].getDesc());
            System.out.printf("\n Valor: %.2f", vetor[i].getPreco());
        
            total += vetor[i].getPreco();
        }
        
        
        System.out.printf("\n\nTotal dos itens: %.2f", total);
       
    }   
        
}

Peço que por favor compilem, e notem que quando é pedido a DESCRIÇÃO do produto, ele pula, o tempo de digitação e já passa para o próximo, não sei se ocorre porque o problema é trabalhar com strings…

Ajudem por favor
grato

Veja que o javadoc de input.nextLine() não é muito claro. De modo geral, toda vez que você usar "input.nextInt", ".nextDouble" etc. e você digitar um ENTER, é necessário dar um "input.nextLine() para descartar esse ENTER que vem depois do número que você digitou. Que droga

         for (int i = 0; i < vetor.length; i++)
         {
             System.out.printf("\n Digite o código do produto: ");
             vetor[i].setCodigo(input.nextInt());
             
             input.nextLine(); // descarta o que foi digitado depois do código do produto
             System.out.printf("\n Digite a descrição do produto: ");
             vetor[i].setDesc(input.nextLine());
             
             System.out.printf("\n Digite o valor do produto: ");
             vetor[i].setValor(input.nextDouble());
         }

Funcionou perfeitamente, muito obrigado pela ajuda.