JAVA na raça. Nome completo

Boa tarde. resolvi desbravar o JAVA na raça já que na faculdade professor só jogava matéria e eu não entendia nada. Minhas dúvidas podem parecer boba pra você mas pra mim que estou tentando apreender do zero vai me ajudar muito.
Fiz esse código porém na hora de aparecer o nome completo da pessoa só aparece o primeiro nome digitado. O que posso fazer pra que o nome apareça de forma completa?
Exemplo: José da Silva ao invés de só José como o que está acontecendo.

import java.util.Scanner;

public class Segundo {

public static void main(String [] args){

    Scanner teclado = new Scanner(System.in);

    String nome;

    System.out.println("Digite seu nome completo: ");

    nome = teclado.next();

    teclado.close();

    System.out.println(nome);

}

}

Se possível me explique o motivo das coisas pra eu apreender, eu não quero que só corrija meu código mas também que me ensine. Por favor. :pray:

1 curtida

Troca:

nome = teclado.next();

Por:

nome = teclado.nextLine();

O motivo é que o next só pega os caracteres até encontrar um espaço em branco, já o nextLine pega tudo até encontrar uma quebra de linha.

No caso a quebra de linha é invisivel para nós, mas ela aparece quando pressionamos Enter.

1 curtida

Deu certo. Obrigado.
Mas você poderia me explicar a diferença e quando se usa o next() e o nextLine() ???

Show. Muito obrigado.

A diferença é para casos em que você só queira pegar a primeira incidência de informação no Scanner.

Vamos supor, você tenha um Scanner que pegue informações de entrada de números de telefone.
A entrada seria um exemplo:
11 998723764

Ai no caso você quer somente o DDD desse telefone, ao invés de pegar ele todo.

Nesse caso você poderia usar o .next() para pegar o DDD e depois chamar o .next() novamente para pegar o número do telefone.

Scanner teclado = new Scanner(System.in);

    String ddd;
    String telefone;

    System.out.println("Digite seu nome completo: ");

    ddd = teclado.next();
    telefone = teclado.next();
1 curtida

next() retorna String

1 curtida

Enfim, só trocar o tipo de variável mesmo, foi só uma forma de exemplificar algum uso disto.

1 curtida