Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Implementação com mais de uma palavra

Verifiquei alguns exemplos de outros tópicos comentando formas de resolver a questão de que o scanner não aceita espaços vazios.

Tentei aplicar o delimitador "\n", mas o meu sistema não está aceitando.

O que pode estar acontecendo?

Código:

    private void salvar(Scanner scanner) {
        scanner.useDelimiter("\n");
        System.out.println("Descricao do Cargo");
        String descricao = scanner.next();
        Cargo cargo = new Cargo();
        cargo.setDescricao(descricao);
        cargoRepository.save(cargo);
        System.out.println("Salvo");
    }

Exception:

2022-08-15 16:49:56.546  INFO 20756 --- [           main] ConditionEvaluationReportLoggingListener : 

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2022-08-15 16:49:56.578 ERROR 20756 --- [           main] o.s.boot.SpringApplication               : Application run failed

java.lang.IllegalStateException: Failed to execute CommandLineRunner
    at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:785) ~[spring-boot-2.6.10.jar:2.6.10]
    at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:766) ~[spring-boot-2.6.10.jar:2.6.10]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:314) ~[spring-boot-2.6.10.jar:2.6.10]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1317) ~[spring-boot-2.6.10.jar:2.6.10]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) ~[spring-boot-2.6.10.jar:2.6.10]
    at br.com.alura.spring.data.SpringDataApplication.main(SpringDataApplication.java:40) ~[classes/:na]
Caused by: java.util.InputMismatchException: null
    at java.base/java.util.Scanner.throwFor(Scanner.java:939) ~[na:na]
    at java.base/java.util.Scanner.next(Scanner.java:1594) ~[na:na]
    at java.base/java.util.Scanner.nextInt(Scanner.java:2258) ~[na:na]
    at java.base/java.util.Scanner.nextInt(Scanner.java:2212) ~[na:na]
    at br.com.alura.spring.data.service.CrudCargoService.inicial(CrudCargoService.java:30) ~[classes/:na]
    at br.com.alura.spring.data.SpringDataApplication.run(SpringDataApplication.java:59) ~[classes/:na]
    at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:782) ~[spring-boot-2.6.10.jar:2.6.10]
    ... 5 common frames omitted
1 resposta
solução!

Pra mim, que uso o Windows, funcionou usando isso:

scanner.useDelimiter("\r\n");

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software