Ler mais de uma palavra em uma String

out.print("Nome: ");
String nome = sc.nextLine();
out.print("CPF: ");
String cpf = sc.next();
out.print("Telefone: ");
String telefone = sc.next();
out.print("Endereco: ");
String endereco = sc.next();

Quando coloco sc.nextLine() , ele simplesmente pula a leitura do nome e lê o CPF

o que voce esta lendo ? cade o resto do codigo?

Você provavelmente deve ter usado algum método next(), nextInt(), nextDouble() ou algo assim antes do nextLine(). O problema disso é que esses métodos como o nextInt() só irão ler o valor inteiro que você digitar, então quando você usar um nextLine() a seguir ele receberá um “\n” (Enter) que pulará para a próxima linha, que no seu caso é o CPF. Tenta adicionar um sc.nextLine() antes de String nome = sc.nextLine():

sc.nextLine();
out.print("Nome: ");
String nome = sc.nextLine();
out.print("CPF: ");
String cpf = sc.next();
out.print("Telefone: ");
String telefone = sc.next();
out.print("Endereco: ");
String endereco = sc.next();

Você também pode fazer a leitura de dados usando JOptionPane.showInputDialog(“Digite o que quiser”) para obter dados do usuário. Sendo assim seu código ficaria:

String nome = JOptionPane.showInputDialog(“Digite o nome:”);
String cpf = JOptionPane.showInputDialog(“Digite o CPF:”);
String telefone = JOptionPane.showInputDialog(“Digite o telefone:”);
String endereco = JOptionPane.showInputDialog(“Digite o Endereço:”);

1 curtida

Vlw, resolveu aqui : )