[RESOLVIDO] Meu meu código está pulando o Scanner sc.nextLine();

Estou usando o NetBeans e ao executar meu codigo, ele lê sem avisar erro ou algo do tipo, porém ele pula o Scanner da String (nome do processo) e continua corretamente depois …
desculpem o incomodo, mas ta difícil essa String viu … kkk

se executarem o codigo, reparem que no final tem comando pra exibir as arrays, porém o nomeProcess fica vazio pois nem mesmo me dá chance de atribuir valor O.o

package softwareadvocacia;
import java.util.Scanner;
import java.util.Arrays;

import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

public class SoftwareAdvocacia {

    public static void main(String[] args) throws IOException {
        

        int tamanho = 10;
        int[] codProcess = new int[tamanho];
        int[] Status = new int[tamanho];
        int[] FormPag = new int[tamanho];
        int[] Parcela = new int[tamanho];
        String[] nomeProcess = new String[tamanho];
        float[] Valor = new float[tamanho];
        float[] ValorParcela = new float[tamanho];
        
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < tamanho; i++) {

            System.out.println("Código do Processo: ");
            codProcess[i] = Integer.parseInt(sc.next());

            System.out.println("Nome do Processo: ");
            nomeProcess[i] = sc.nextLine();
           
            System.out.println("Status: \n1 para aberto \n2 para fechado");
            Status[i] = Integer.parseInt(sc.nextLine());
            
            System.out.println("Digite o valor Total:");
            Valor[i] = Float.parseFloat(sc.nextLine());
            
            System.out.println("\nForma de pagamento: \n 1 - Cartão \n 2 - boleto");
            FormPag[i] = Integer.parseInt(sc.nextLine());
            if (FormPag[i] == 1){
                System.out.println("Parcelas: \n 1 - 1x \n 2 - 2x \n 3 - 3x \n 4 - 4x \n 5 - 5x \n 6 - 6x "
                                 + "\n 7 - 7x \n 8 - 8x \n 9 - 9x \n 10 - 10x \n 11 - 11x \n 12 - 12x");
                Parcela[i] = Integer.parseInt(sc.nextLine());
            }else{
                Parcela[i] = 1;
            }
            ValorParcela[i] = Valor[i] / Parcela[i];
            System.out.println("Valor de cada Parcela: "+ ValorParcela[i]);
            
            System.out.println(Arrays.toString(codProcess));
            System.out.println(Arrays.toString(nomeProcess));
            System.out.println(Arrays.toString(Status));
            System.out.println(Arrays.toString(Valor));
            System.out.println(Arrays.toString(FormPag));
            System.out.println(Arrays.toString(Parcela));
            
            
        }

   }
}

@FrankBR e o que isso tem a ver?

Altere todos os sc.nextInt ou sc.nextFloat para Integer.parseInt(sc.nextLine()) ou Float.parseFloat(sc.nextLine()) e então problema resolvido!

2 curtidas

Para mim o erro tinha sido no método main

E quando for String como no caso do nome do processo?

deixa só sc.nextLine()