3
respostas

Classe Scanner

Estou com um problema referente à classe Scanner. Ao inserir uma String com acento ou ç e imprimir o valor na tela, surge um "?" no lugar do caractere que deveria ser acentuado. Isso só ocorre com dados inseridos pelo teclado com o Scanner. Quando faço System.out.println("Meu nome é Nícolas"); O resultado é Meu nome é Nícolas. Porém quando coloco:

System.out.println("Digite seu nome: ");
String nome = sc.nextline();
System.out.println("Meu nome é" + nome);

Ele imprime "Meu nome é N?colas" Ja criei a classe scanner das seguintes formas, mas não resolveram o problema:

Scanner sc = new Scanner(System.in);
Scanner sc = new Scanner(System.in, "UTF-8");

Agradeço se puderem me ajudar

3 respostas

Olá, Nícolas!

O problema que você está enfrentando é comum e pode ser resolvido facilmente. O que está acontecendo é que o console não está configurado para exibir caracteres acentuados ou caracteres especiais corretamente.

Para resolver esse problema, você pode utilizar o método System.setProperty("console.encoding","UTF-8"); no início do seu código. Dessa forma, o console será configurado para exibir caracteres acentuados corretamente.

Segue um exemplo:

System.setProperty("console.encoding","UTF-8");
Scanner sc = new Scanner(System.in);
System.out.println("Digite seu nome: ");
String nome = sc.nextLine();
System.out.println("Meu nome é " + nome);

Espero ter ajudado e bons estudos!

Olá, Arthur! Obrigado por responder.

Tentei o que sugeristes mas não resolveu o problema. Agora aparece assim: Meu nome é N¡colas

Ainda não consegui resolver, alguma ajuda?