JAVA na raça. Nome completo

6 respostas Resolvido
DevTiozao

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:

6 Respostas

wldomiciano
Solucao aceita

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.

DevTiozao

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

DevTiozao

Show. Muito obrigado.

G

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:
[telefone removido]

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();
RoinujNosde

next() retorna String

G

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

Criado 24 de maio de 2021
Ultima resposta 24 de mai. de 2021
Respostas 6
Participantes 4