Por que não consigo colocar um nome composto numa String?

2 respostas
java
P

O meu código fonte é o seguinte:

package exercicio069;
import java.util.Scanner;
public class Exercicio069 {
    public static void main(String[] args) {
        Scanner teclado = new Scanner(System.in);
        String nome = "", melhor = "";
        float n1 = 0f, n2 = 0f, media = 0f;
        byte aprovado = 0, reprovado = 0;
        float maiorMedia = 0f;
        for (byte c = 1; c <= 5; c++) {
            System.out.print("Qual é o seu nome? ");
            nome = teclado.next();
        } //TEM MAIS COISAS, EU ADAPTEI
 
Então, quando eu coloco um nome composto, exemplo: João Manoel, Vinicius Gabriel, aparece o seguinte erro:
Exception in thread “main” java.util.InputMismatchException

at java.util.Scanner.throwFor(Scanner.java:864)

at java.util.Scanner.next(Scanner.java:1485)

at java.util.Scanner.nextFloat(Scanner.java:2345)

at exercicio069.Exercicio069.main(Exercicio069.java:14)

C:\Users\Pessoal\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1

FALHA NA CONSTRUÇÃO (tempo total: 23 segundos)

Observe: quando eu coloco um nome simples: Rafael, João, Vinicius, o programa funciona CORRETAMENTE!

2 Respostas

S

O “next” retorna o próximo token lido
Utilize “nextLine” para ler a linha toda

P

obrigado!

Criado 6 de dezembro de 2016
Ultima resposta 8 de dez. de 2016
Respostas 2
Participantes 2